Python 如何在it中使用模型字段';s序列化程序
我希望有我自己的错误消息,我已经在序列化程序中实现了这样的错误消息:Python 如何在it中使用模型字段';s序列化程序,python,django,django-models,serialization,django-rest-framework,Python,Django,Django Models,Serialization,Django Rest Framework,我希望有我自己的错误消息,我已经在序列化程序中实现了这样的错误消息: class TransactionsValuesSerializer(serializers.ModelSerializer): class Meta: model = Translations fields = ('id', 'value') extra_kwargs = {"value": {"error_messages":
class TransactionsValuesSerializer(serializers.ModelSerializer):
class Meta:
model = Translations
fields = ('id', 'value')
extra_kwargs = {"value": {"error_messages": {"blank": f"Error"}}}
这是模型
class Translations(models.Model):
class Meta:
db_table = 'merchants__translations'
value = models.TextField()
key = models.ForeignKey(
TranslationsKeys,
on_delete=models.CASCADE,
related_name='translations'
)
translation_language = models.ForeignKey(
TranslationLanguages,
on_delete=models.CASCADE,
related_name='translations'
)
现在,如果用户没有输入翻译的某些字段,它将显示错误消息“error”。
有没有一种方法可以输出类似“error in{key}”这样的错误消息?我从来没有看到过在这方面使用额外的\u kwargs。也许你应该这样走。 序列化程序已在必填字段为空时引发错误。它会自动显示字段名。 序列化程序字段的默认行为已为required=True 所以,我认为您的序列化程序目前还不错。然后,当您在不包含值字段的情况下发出请求时,序列化程序应该引发类似这样的问题 HTTP 400错误请求 {'value':['此字段不能为空。]}
我想你已经有了你想要的键名
value
。我不太明白你想在这里实现什么。@ğağatayBarın我想获取模型字段并将其值放入错误消息中。模型包含字段“key”。我想获取它并将其放置到错误位置,以显示在哪个字段中出现错误。我需要一个类似“{field}不能为空”的错误。如果有多个空字段,序列化程序会多次引发“此字段可能不为空”。我想给用户一些更准确的说明。它已经为每个字段返回了错误消息。也许您可以在前端处理该错误消息,然后显示每个字段的错误消息。在Django admin中就是这样做的。它分别返回每个字段的错误,然后django显示每个字段的错误。我认为你想要的东西可以很容易地在前端完成。您可以在后端使用自定义验证器进行验证,但最终可能会产生难看的代码。是的,您是对的,谢谢。