Django小部件 - 将类添加到字段

问题描述 投票:0回答:1

我试图在django ModelForm中添加类到我的输入,如下所示:

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'

我有什么想法我做错了吗?

python django forms widget
1个回答
0
投票

form.fields是一个dict,其中字段的名称为键,表单字段为值。因此,迭代它会产生字符串。改变如下:

for name, field in self.fields.items():
    # stuff with field.widget

或者简单地说(如果'stuff'不涉及名称,就像你的代码片段中的情况一样):

for field in self.fields.values():
    # stuff with field.widget
© www.soinside.com 2019 - 2024. All rights reserved.