Kev*_*vin 10 django django-forms
我想将TextInput Widget的class属性设置为我的表单中使用它的所有字段的一个值,而不必在Meta中列出它们:widgets = {....这可能吗?
谢谢.
Pau*_*ine 14
您可以覆盖构造函数以修改所有TextInput小部件:
from django import forms
class MyForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
for name, field in self.fields.items():
if field.widget.__class__ == forms.widgets.TextInput:
if 'class' in field.widget.attrs:
field.widget.attrs['class'] += ' my-class'
else:
field.widget.attrs.update({'class':'my-class'})
class Meta:
model = MyModel
Run Code Online (Sandbox Code Playgroud)
你可以用装饰器覆盖init吗?另外,在attrs.update()之前应该有一个if语句因为我想设置一个默认值而不是覆盖可能已存在的内容. - 凯文
未经测试,但我猜你可以继承MyForm,如果你经常使用它.
| 归档时间: |
|
| 查看次数: |
8356 次 |
| 最近记录: |