当前位置: 首页 > 面试题库 >

Django,模型和表格:替换“此字段为必填”消息

贺卜霸
2023-03-14
问题内容

我知道在使用普通Django表单时如何设置自己的自定义错误消息。但是基于现有模型的Django Form呢?考虑以下模型和形式:

Class MyModel(models.Model):
    name = models.CharField(max_length='30')

Class MyForm(forms.ModelForm):
    Class Meta:
        model = MyModel

如果我创建此类表单并尝试发布,则会出现消息“此字段为必填”。但是如何改变呢?当然我可以做这样的事情:

Class MyForm(forms.ModelForm):
    model = forms.CharField(error_messages = {'required': "something..."})
    Class Meta:
        model = MyModel

但是根据文档,不会保留max_length属性,我必须将其显式写入表单定义。我认为模型表格的目的是避免两次编写相同的代码。因此,必须有一些简便的方法来更改自定义错误消息,而无需重写整个表单。基本上,如果我的消息看起来像“必填字段’名称’”,对我来说就足够了。


问题答案:
class MyForm(forms.ModelForm):
    class Meta:
            model = MyModel

    def __init__(self, *args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)
        self.fields['name'].error_messages = {'required': 'custom required message'}

        # if you want to do it to all of them
        for field in self.fields.values():
            field.error_messages = {'required':'The field {fieldname} is required'.format(
                fieldname=field.label)}


 类似资料:
  • 问题内容: 我有一个表格,其中的两个字段根据需要在我不希望出现时也出现。这是来自models.py的表格 在实际的电路模型中,字段的定义如下: 我的views.py在这里: 我该怎么做,以便不需要这两个字段? 问题答案: 如果您不想修改模型中字段的空白设置(这样做会破坏管理站点中的常规验证),则可以在Form类中执行以下操作: 重新定义的构造函数不会损害任何功能。

  • 问题内容: 有一个表格,其中的两个字段在我也不希望出现时按要求列出。这是来自models.py的表格 我的views.py在这里: 我该怎么做,以便不需要这两个字段? 问题答案: 如果你不想修改模型中字段的空白设置(这样做将破坏管理站点中的常规验证),则可以在Form类中执行以下操作: 重新定义的构造函数不会损害任何功能。

  • 问题内容: 我有一个逐步填写的模型,这意味着我正在制作一个表单向导。 因此,此模型中的大多数字段都是必需的,但必须避免在提交部分数据时引发非空错误。 我正在使用Angular.js和django-rest-framework,我需要告诉api应该是x和y字段,如果它们为空,则需要返回验证错误。 问题答案: 您需要专门覆盖该字段并添加自己的验证器。您可以在此处详细了解http://www.djang

  • 问题内容: 我定义了一个(最终)继承自的类。我想获取为此模型定义的所有字段的列表。例如,。基本上,我想检索从该类继承的任何内容。 我以为我可以利用来检索这些,但是它返回的列表不包含任何这些字段。看起来Django已经掌握了该类,并添加了其所有魔术属性并去除了实际定义的内容。那么…我如何获得这些领域?它们可能具有为自己的内部目的检索它们的功能? 问题答案: 由于大多数答案已过时,因此我将尝试在Dja

  • 问题内容: 在我的模型中,我想要一个包含三联列表的字段。例如。是否存在可以将这些数据存储在数据库中的字段? 问题答案: 你可以使用JSON将其转换为字符串并将其存储为字符串。 例如, 你可以在类中添加方法以自动为你转换。

  • 问题内容: 如何使用Django的ORM和PostgreSQL后端存储二进制数据的“ blob”?是的,我知道Django对这种事情不屑一顾,是的,我知道他们更喜欢你使用ImageField或FileField来表示,但这足以说明我的应用程序不切实际。 我曾尝试通过使用TextField对其进行破解,但是当我的二进制数据未严格确认模型的编码类型(默认为unicode)时,会出现偶尔的错误。例如 问