Django 表单子类化 - 如何修改继承字段的某些属性,同时保留其他属性?

Posted

技术标签:

【中文标题】Django 表单子类化 - 如何修改继承字段的某些属性,同时保留其他属性?【英文标题】:Django form subclassing - How to modify some attribute, while retaining the other attributes, of an inherited field? 【发布时间】:2011-10-05 23:00:19 【问题描述】:

我的问题是关于 Django 中的表单子类化。如何修改继承字段的某些属性,同时保留其他属性?

例如,我有一个名为 SignUpForm 的表单,它是 UserCreationForm 的子类。

用户创建表单:

...
password1 = forms.CharField(label=_("Password"), widget=forms.PasswordInput)
...

在 SignUpForm 中,我想用 widget=TextInput(attrs='size': 30) 覆盖 widget,同时保留 label 一样。这可能吗?如果是这样,怎么做?谢谢。

【问题讨论】:

【参考方案1】:

您可以在__init__中进行操作

def __init__(self, *args, **kwargs):
    super(MyForm, self).__init__(*args, **kwargs)
    self.fields['password1'].widget = TextInput(attrs='size': 30)

【讨论】:

正是我需要的。谢谢@DrTyrsa

以上是关于Django 表单子类化 - 如何修改继承字段的某些属性,同时保留其他属性?的主要内容,如果未能解决你的问题,请参考以下文章

子类化 numpy ndarray 时,如何正确修改 __getitem__?

访问模板化 Django 中的表单字段属性

为 django 1.5 自定义用户模型子类化 django-registration 1.0 表单

Django表单,表单字段的继承和顺序

Django:如何在呈现之前但在表单初始化之后修改表单字段的值?

如何修改 Django 中特定类型的所有内置表单字段的默认小部件?