我的模型有一个字段:
name = models.CharField(max_length=255, blank=True, null=True)
字符串
在序列化程序中,我试图引发唯一的验证错误
name = serializers.CharField(validators=[UniqueValidator(queryset=Department.objects.all(),
message=("Name already exists"))])
型
但是它不起作用,因为数据以这种格式name: {en: "drink"}
到达串行化器,在db字段中只填充drink
。
我可以在create
方法中引发错误,但我想在序列化程序中引发错误。感谢任何建议。我很着急。抱歉给您带来不便。
Thanks in advance
3条答案
按热度按时间xsuvu9jc1#
我强烈建议你使用Django Rest Framework的Serializer字段级验证,它允许你为你的字段做自定义验证。
如下所示:
字符串
uqdfh47h2#
您可以在Serializers.py中的Meta类下面执行此操作,因为它会引发错误,错误名称必须是唯一的
字符串
xwbd5t1u3#
我没有使用
UniqueValidator
,所以我黑了UniqueTogetherValidator
。像这样;
导入:
from rest_framework.validators import UniqueTogetherValidator
个然后:
字符串
如果您希望名称字段是唯一的。
参考:这里