我正在尝试更改Django为ArrayField生成的默认错误消息(输入的错误消息具体太多)
如果用户向我的ArrayField输入太多项目,则模板中将生成以下消息:
列表包含4个项目,最多只能包含3个。
我想将此消息更改为
您不能超过3个主题。
我尝试将以下error_messages添加到我的forms.py TopicForm元类中,但没有成功
error_messages = {
'topic': {
'invalid': ("You can't have more than 3 topics."),
},
这是我的models.py文件
from django.contrib.postgres.fields import ArrayField
from django.db import models
class Topic(models.Model)
topic = ArrayField(models.CharField(max_length=20), size=3, blank=True, null=True)
和我的forms.py
from django import forms
from .models import Topic
class TopicForm(forms.ModelForm):
class Meta:
model = Topic
fields = ['topic']
请为此提供一些建议!谢谢!
答案 0 :(得分:1)
ArrayField
具有多个错误“代码”,可以处理各种类型的用户输入。
用元素过度填充的数组的错误“代码”为max_length
。
这是您缺少的代码的重写代码:)
error_messages = {
'topic': {
'max_length': ("You can't have more than 3 topics."),
},
通过这种方式,您还可能希望自定义item_invalid
错误消息,以便用户尝试提交不完整的输入。
例如,尝试提交string1,string2,
(请参阅逗号吗?)
会提高:
数组中的第3项无效
您可以通过添加以下内容来自定义item_invalid
消息:
error_messages = {
'topic': {
'max_length': ("You can't have more than 3 topics."),
'item_invalid': ("Your customized message"),
},