Django rest 框架 DateField 格式

标签 django django-models django-forms django-rest-framework django-views

我有包含 DateField 的 drf 模型。该字段的默认格式是“YYYY-MM-DD”,只是我想转换“DD-MM-YYYY”怎么可能。

模型.py

class Reminder(BaseModel):
    content = models.TextField()
    schedule_date = models.DateField()
    schedule_time = models.TimeField()
    is_release = models.BooleanField(default=True)

序列化程序.py
class ReminderSerializer(HyperlinkedModelSerializer):
    schedule_date = serializers.DateField(format="%d-%m-%Y")
    class Meta:
        model = Reminder
        fields = ('id','content','created_at','schedule_date','schedule_time','user_id','is_release','is_deleted',)

在 serializer.py 中,我只给出格式,但该格式仅在列表页面中转换。正如您所看到的那样,列表很好,但 POST 操作字段未转换。 API please look at image

最佳答案

你可以看看DRF's docs on this .基本上format仅处理输出,但对于输入,您需要包含 input_formats - 对于你的情况,你可以做 schedule_date = serializers.DateField(format="%d-%m-%Y", input_formats=['%d-%m-%Y', 'iso-8601'])
是否要保留iso-8601 由您决定。

关于Django rest 框架 DateField 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48444665/

相关文章:

django - 文件上传时的最大图像大小

python - 如何在 Django 查询中使用正则表达式

python - Django 中的虚拟过滤器

python - 使用 `get_or_create` 时不隐藏软删除实例

验证失败时的Django表单字段初始值

django - 类型错误 : 'BasePermissionMetaclass' object is not iterable in django rest framework

Django : ModelForm with conditions

Django在不知道/重置密码的情况下将站点视为管理员的另一个用户

python - Uwsgi 与 gevent 对比线程

python - Django 在用户模型中显示多对多关系