如何在它的序列化器中使用模型字段
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
。
我想要自己的错误消息,我在序列化程序中实现了这样的错误消息:
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
。