如何在它的序列化器中使用模型字段

How to use model field in it's serializer

我想要自己的错误消息,我在序列化程序中实现了这样的错误消息:

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'。 Image

有没有办法像'Error in {key}'一样输出错误信息?

我从未见过 extra_kwargs 的用法。也许你应该这样走。 序列化程序在必填字段为空时已经引发错误。它会自动显示字段名称。 对于序列化程序字段,默认行为已经是 required=True。

所以,我认为您的序列化程序目前还不错。然后,当您发出不包含值字段的请求时,序列化程序应该引发类似这样的事情。

HTTP 400 错误请求 {'value': ['This field may not be blank.']}

我想你已经有了你想要的键名value