model.py
class Form(models.Model):
no = models.IntegerField()
finish_date = models.DateField(blank=True, null=True)
serializers.py
class FormSerializer(serializers.ModelSerializer):
class Meta:
model = Form
fields = '__all__'
如果我尝试:
http http://127.0.0.1:8000/api/forms no=112 "finish_date"=""
它会返回错误:
"finish_date": [
"Date has wrong format. Use one of these formats instead: YYYY[-MM[-DD]]."
]
如果我将“finish_date”设置为空,则此帖子有效。并且StringField(blank=True,null=True)
不会得到错误。
怎么解决?
使用此代码修改序列化程序
class FormSerializer(serializers.ModelSerializer):
finish_date = serializers.DateTimeField(allow_null=True)
class Meta:
model = Form
fields = '__all__'
现在在上面的模型中,你有一个日期字段,并且日期字段接受某些格式,类似于帖子错误中显示的格式。当您发帖时:
http http://127.0.0.1:8000/api/forms no=112 "finish_date"=""
实际上,您正在向序列化程序传递一个空字符串(“”),这不是DateField的有效格式。相反,在不传递“finish_date”参数的情况下尝试Post,我认为它会起作用。或者,您可以传递过去的默认日期,而不是传递空字符串。
问题是DateTime字段
当前不支持allow_blank
关键字参数。
但是它支持< code>allow_null,因此您有两种选择:
Scrub"finish_date": ""
-
如果您使用 JavaScript 提交表单,您可能需要执行以下操作:
if (data["finish_date"] == "") {
data["finish_date"] = null;
}
Scrub
"finish_date": ""
-
您可以使用<code>轻松完成此操作。
方法ModelSerializer
上的to_internal_value()
class FormSerializer(serializers.ModelSerializer):
class Meta:
model = Form
fields = '__all__'
def to_internal_value(self, data):
# check for "finish_date": "" and convert to None
# This must be done before .validate()
if data['finish_date'] == '':
data['finish_date'] = None
return super(FormSerializer, self).to_internal_value(data)
<代码>。《Django Rest Framework Fields API参考》中多次提到了to_internal_value()
方法
我想我会在这里问这个问题,因为我不太确定我会错在哪里。我正在尝试使用Django Rest框架类通过AJAX执行POST请求。但是,每当事件触发时,我都会收到以下错误: 这是堆栈跟踪中显示的内容: 上下文 我试图做到这一点,当用户单击“添加到列表”按钮时,它会向用户定义的列表发送一个cafeName(以及最终的其他详细信息)。 我想知道是否有人可以看看我的代码,并给我一些指导,我哪里出了问题? 代
我在映射中设置了一个日期字段,如下所示: 在我的应用程序中,字段group psAssignedDate最初设置为空字符串。分配组时,将生成unix时间戳并将其存储在字段中。我试图使用elasticsearch的批量更新功能来引入一组带有“AssignedDate”的文档,因为还没有分配组。不过,Elasticsearch不会对文档进行索引。这在日志文件中: 弹力搜索似乎支持JSON空值...我需
我有数据帧,它有几个具有日期数据的列。我想对列应用验证,如果日期错误,我想用错误消息列更新该数据帧。我尝试过但工作不正常。我的示例数据帧数据。 我尝试了以下代码。 预期数据帧
我有一个java实体类TimeEntry.java它的属性之一是Date,它看起来像这样。 对于该字段,在swagger UI模型模式上,字段日期显示为“日期”:“2016-01-08T22:34:22.337Z”,但我需要该字段作为“日期”:“2016-01-08”。 我尝试了以下方法: 请帮帮忙。
当我要求一个图像http://127.0.0.1:8000/api/images/1/或者传入参数进行裁剪http://127.0.0.1:8000/api/images/1/?height=320 我得到的答复是: 而在http://127.0.0.1:8000/api/images/ 答复是: 为什么缩略图不容易返回主机名,我如何将基本网址追加到响应中? 以下是我的看法。派克
我是DRF的新手,我有这个序列化器,但我无法创建帖子,因为即使在将图像上传到该字段后,它也会在postman中不断向我显示这一点。在正常的django中,此PostImage模型与Post有外键关系,我使用表单集上传多张图像。 有人能帮我解决这个问题并告诉我它是如何工作的吗? 序列化程序。py公司 意见。py公司 更新: 有效载荷。 更新的createserializer 基于上次编辑的响应 }