发布日期字段时djangorest 400响应

标签 django serialization django-rest-framework

我正在将日期时间值放入我的 drf 后端。这是我的代码:

模型.py

class MyModel(models.Model):
    ....
    date = models.DateField(blank=true, null=true)  
    .....

序列化器.py

class MyModelSerializer(ModelSerializer):  
    class Meta:  
        model = MyModel
        fields = '__all__'

View .py

class UpdateNRetrieve(RetrieveUpdateAPIView):
    queryset = MyModel.objects.all()
    serializer_class = MyModelSerializer
    lookup_field = 'pk'

在我的 settings.py 上我有这个:

REST_FRAMEWORK = [
    .....
    'DATE_FORMAT': '%d/%m/%Y',
    'DATE_INPUT_FORMATS': '%d/%m/%Y',
    .....
]

还有这个:

LANGUAGE_CODE = 'it-IT'

TIME_ZONE = 'Europe/Rome'

USE_I18N = True

USE_L10N = True

USE_TZ = True  

当我从前端发出 PUT 请求时,我收到一个 400 错误(错误请求),该值如下:

date:"04/12/1984"  

我总是得到这样的回复:

日期格式错误。请改用以下格式之一:%、d、/、%、m、/、%、Y。"

我不知道我的错误在哪里!

最佳答案

settings.py 中的 DATE_INPUT_FORMATS 应该是一个列表:

'DATE_INPUT_FORMATS': ['%d/%m/%Y'],

关于发布日期字段时djangorest 400响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46749929/

相关文章:

python - Django 测试客户端不会自动序列化工厂

python - 序列化 Python 类中的 @property 方法

python - Django 脆皮表格

现有协议(protocol)的 C++ 序列化库

python - 如何将 Python 内存字典作为 Python 源代码保存到文件中?

python - 您可以在 django-rest-framework 中重命名 PrimaryKeyRelatedField 吗

mysql - manage.py migrate 无法访问远程 MySQL 数据库

c# - 使用 ProtoBuff.Net 通过 Socket 接收多种类型的对象

Django REST框架序列化器: multiple fields mapping to one property

django - Django Rest Framework如何访问序列化器中的字段