我想将class="text"
添加到所有TextInput
小部件中。我知道我可以添加
widgets = {
'myfield': TextInput(attrs={'class':'text'})
}
对于每一个领域,每一种形式......但是必须有一种更简单的方法吗?我的很多表单都基于ModelForms,所以它会自动为我设置字段和小部件。
答案 0 :(得分:1)
也许你可以通过使用一个覆盖__init__
方法的类继承ModelForm,调用super __init__
,然后遍历创建的对象的属性,如果它们是{{的实例1}},添加属性。您可以找出解决方案的具体机制。
这就是我要探索的内容。
答案 1 :(得分:0)
这不是最好或最干净的解决方案,但是使用jQuery呢?
$(document).ready(function(){
$('input[type=text],input[type=password]').addClass('text');
});
我假设这个目标是样式文本输入,因为IE6不会理解CSS属性
答案 2 :(得分:0)
这是一个基于Django的解决方案,已经提到了。您可以创建一个应用程序“MyForms”并在那里有一个表单模块:
# myforms/forms.py
from django import forms
class Form(forms.Form):
def __init__(self, *args, **kwargs):
super(Form, self).__init__(*args, **kwargs)
for field in self.fields:
# Turn all CharField widgets to TextInput(attrs={'class'='text'})
class ModelForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
# Same as above
然后在你的代码中,执行此操作:
from myforms import forms
而不是
from django import forms