Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在it中使用模型字段';s序列化程序_Python_Django_Django Models_Serialization_Django Rest Framework - Fatal编程技术网

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显示每个字段的错误。我认为你想要的东西可以很容易地在前端完成。您可以在后端使用自定义验证器进行验证,但最终可能会产生难看的代码。是的,您是对的,谢谢。