我想发布带有字段date
的JSON请求:
{
"date":"2015-02-11T00:00:00.000Z"
}
这是字符串从Date
object自动转换而来的,我不想在前端手动裁剪部分T00:00:0.000Z
。
但是如果我发布这样的请求,Django Rest Framework验证器会说我,该日期格式无效。
我的型号:
class Event(models.Model):
name = models.CharField('Name', max_length=40, blank=True, null=True)
date = models.DateField('Date', blank=True, null=True)
我的序列化程序:
class EventSerializer(serializers.ModelSerializer):
class Meta:
model = Event
fields = ('id', 'name', 'date')
解决这个问题的正确方法是什么?
您可以使用不同的格式(与您隐式使用的默认格式不同)修改序列化程序中的日期字段。
更多信息:
https://www.django-rest-framework.org/api-guide/fields/#datefield
https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior
from rest_framework import serializers, fields
class EventSerializer(serializers.ModelSerializer):
date = fields.DateField(input_formats=['%Y-%m-%dT%H:%M:%S.%fZ'])
class Meta:
model = Event
fields = ('id', 'name', 'date')
请注意,如果您需要解析UTC以外的时间戳(时间戳末尾的Z),则需要进一步自定义<code>DateField</code>。
正如@nitrovatter在评论中提到的,默认情况下,日期输入格式也可以在设置中进行配置,以影响每个序列化程序。例如:
REST_FRAMEWORK = {
'DATE_INPUT_FORMATS': ['iso-8601', '%Y-%m-%dT%H:%M:%S.%fZ'],
}
问题内容: 这是模型: 我想在两个日期之间进行过滤,例如选择间隔18-30年的所有用户。 如何用SQLAlchemy实现它? 我想: 我知道这是不正确的,但是该怎么做正确呢? 问题答案: 实际上,除了错字之外,您的查询是正确的:您的过滤器排除了所有记录:您应该更改for ,反之亦然: 您也可以使用:
我如何获得所有的发布组和发布日期的艺术家在一个电话与musicbraz api?我能做到这一点的最接近的方法是使用: 但是,有些发布组不存在。例如,使用上面的调用,“EP”、“单混音”和一些非官方版本都没有出现。基本上,我希望能够制作与musicbrainz相同的列表,当你进入艺术家的主页进行“所有”发行时: 此外,上面的api调用不返回发布日期。有什么建议吗?这些是虫子吗?报告此事的最佳地点是哪
问题内容: 这是关于如何在django支持的网站中使用jQuery 。 是 我正在使用。 我正在使用和创建成功显示日期。 但未显示日期选择器图标。我正在使用Django模型形式。 问题答案: 你可以使用来将a传递给表单,该表单将在html中呈现。然后,将读取该内容以呈现功能。 这是一个例子: …或使用ModelForm时通过Meta类中的属性: 现在在模板中:
这是正确的吗?
zebra-client和zebra-cat-client的版本保持同步,不会单独发布版本。 zebra-dao版本单库维护。 推荐版本 zebra-client : 2.9.1 zebra-cat-client : 2.9.1 zebra-dao : 0.2.1 最新版本 zebra-client : 2.9.1 zebra-cat-client : 2.9.1 zebra-dao : 0.2.
我有一个java实体类TimeEntry.java它的属性之一是Date,它看起来像这样。 对于该字段,在swagger UI模型模式上,字段日期显示为“日期”:“2016-01-08T22:34:22.337Z”,但我需要该字段作为“日期”:“2016-01-08”。 我尝试了以下方法: 请帮帮忙。