当前位置: 首页 > 知识库问答 >
问题:

如何在Django rest框架中检查请求数据是否为空?

宣冥夜
2023-03-14

我正在尝试使用django rest框架编写一个APIView。在post方法中,我想检查请求数据是否包含任何内容,因为我经常得到KeyError。我可以使用以下代码实现它:

        if request.data is not None and request.data != {}:
            username = request.data["username"]

有没有更好的方法来编写上述代码?尤其是请求。数据!={}

共有2个答案

壤驷鸿
2023-03-14

由于空字典的计算结果为False,因此可以简单地使用if not操作符来验证数据。

更简单的方法是

if not request.data:
   username = request.data["username"]

或者,您可以使用序列化程序来验证字段。下面是如何实现这一点的示例:

class CommentSerializer(serializers.Serializer):
    email = serializers.EmailField()
    content = serializers.CharField(max_length=200)
    created = serializers.DateTimeField()

^假设这些字段是您的字段,您可以将它们更改为模型字段。

丌官运珧
2023-03-14

DRF中的第一个建议是使用序列化程序来验证字段。看看这里https://www.django-rest-framework.org/api-guide/serializers/

 类似资料:
  • 我想看看这些数据。帧列具有任何要移动到下一个循环的null值。我目前正在使用以下代码: 吐出警告: 在if(is.na(df\u cell\u client[,分子])==TRUE){…:条件具有长度 如何检查是否有任何值为null,而不仅仅是第一行?

  • 问题内容: 我想检查服务器端是否对我的php页面的请求是ajax请求。 我看到了两种方法可以做到这一点: 第一种方法:在请求中发送一个参数,该参数告诉页面这是AJAX请求(= ) mypage.php: 第二种方式:将标头设置为: 客户端js: mypage.php: 事实是,这两种方法很容易被黑,因此检查我是否收到这样的AJAX请求并不安全。 如何检查我是否收到AJAX请求? 问题答案: 没有确

  • 我想我会在这里问这个问题,因为我不太确定我会错在哪里。我正在尝试使用Django Rest框架类通过AJAX执行POST请求。但是,每当事件触发时,我都会收到以下错误: 这是堆栈跟踪中显示的内容: 上下文 我试图做到这一点,当用户单击“添加到列表”按钮时,它会向用户定义的列表发送一个cafeName(以及最终的其他详细信息)。 我想知道是否有人可以看看我的代码,并给我一些指导,我哪里出了问题? 代

  • 如何检查数据帧是否为空?在我的例子中,如果为空,我想在终端中打印一些消息。

  • 问题内容: 有没有一种方法可以检查Python中的请求是否为AJAX? 相当于PHP的? 问题答案: 如果AJAX框架在其请求中设置了X-Requested-With标头,则您将能够使用该标头来检测AJAX调用。这取决于客户端框架。 掌握HTTP标头取决于您选择的Python框架。在Django中,对象具有可以直接使用的方法。

  • 我使用POST方法提交表格。表单有一个输入字段:。 我试图检查参数是否存在: 但它不起作用