gpt4 book ai didi

python - 覆盖Django RestFramework CreateModelMixin序列化器错误消息

转载 作者:行者123 更新时间:2023-12-03 08:26:10 25 4
gpt4 key购买 nike

我正在使用Django Restframework 3.3.3,并且尝试使用通用 View ,但是我希望覆盖序列化程序验证错误消息。我得到以下代码,当没有给出名称字段时,出现“名称字段不能为空”的代码。

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")}}

欢迎任何建议,在此先感谢

最佳答案

您几乎用序列化器做了正确的事情,只是忘了将它放在error_messages

from django.utils.translation import ugettext_lazy as _

class PositionSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = ('id', 'name', 'description')
extra_kwargs = {"name": {"error_messages": {"blank": _("Customized message goes here")}}}

您也可以尝试在模型中设置此消息。使用 blank
class MyModel(models.Model):
name = models.CharField(..., error_messages={'blank': _("Customized message goes here")})

关于python - 覆盖Django RestFramework CreateModelMixin序列化器错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40799615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com