【发布时间】:2017-04-09 12:54:04
【问题描述】:
我正在使用 Django Restframework 3.3.3,并且我正在尝试使用通用视图,但我希望覆盖序列化程序验证错误消息。我得到以下代码,当没有给出名称字段时,它会出现“名称字段不能为空”。
class PositionList(generics.ListCreateAPIView):
"""Get the Position list, or add another Position only when you are admin"""
renderer_classes = ((BrowsableAPIRenderer, JSONRenderer))
permission_classes = (IsAuthenticatedOrReadOnly, IsAdminOrReadOnly,)
queryset = Position.objects.filter()
serializer_class = PositionSerializer
我的问题是:有没有办法自定义错误消息。 以下方法对我不起作用: (1)。覆盖序列化器类中的init方法:
def __init__(self, *args, **kwargs):
super(UserSerializer, self).__init__(*args, **kwargs)
self.fields['name'].error_messages['required'] = 'My custom required msg'
(2)。在序列化器类中给出错误信息:
class PositionSerializer(serializers.ModelSerializer):
class Meta:
model = Position
fields = ('id', 'name', 'description')
extra_kwargs = {"name": {"required": _("Customized message goes here")}}
欢迎任何建议,提前谢谢
【问题讨论】:
-
为什么在你的序列化程序中是
MyModel而不是Position? -
没有这个问题,已经编辑过了。仍然无法弄清楚为什么无法自定义错误消息。
标签: python django serialization error-handling django-rest-framework