Django的部件 - 添加类到现场

我想在DjangoModelForm添加类我的输入是这样的:Django的部件 - 添加类到现场

from django import forms 

from .models import OrderProject

class OrderProjectForm(forms.ModelForm):

def __init__(self, *args, **kwargs):

super(OrderProjectForm, self).__init__(*args, **kwargs)

for field in self.fields:

if field.widget.__class__ == forms.widgets.TextInput:

if 'class' in field.widget.attrs:

field.widget.attrs['class'] += 'project-form__input'

else:

field.widget.attrs.update({'class':'project-form__input'})

class Meta:

model = OrderProject

fields = ('name', 'customer', 'area', 'status', 'budget', 'opening_date',

'ending_date',)

不幸的是我得到了错误: 'str' object has no attribute 'widget'

任何想法,我做错了?

回答:

form.fields是一个dict,其中字段的名称为键,表格字段为值。迭代它,从而产生字符串。更改如下:

for name, field in self.fields.items(): 

# stuff with field.widget

或者干脆(如果“东西”不涉及名称,它是在你的代码片段的情况下):

for field in self.fields.values(): 

# stuff with field.widget

以上是 Django的部件 - 添加类到现场 的全部内容, 来源链接: utcz.com/qa/263432.html

回到顶部