'tuple' 对象没有属性 'fields' 使用 Django Crispy Forms
'tuple' object has no attribute 'fields' using Django Crispy Forms
给定一个表单,我想使用 django-crispy-forms 在 Div 中包装一些字段。
class SignupForm(forms.Form):
def __init__(self, *args, **kwargs):
super(SignupForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_method = 'POST'
self.helper.form_action = ''
self.helper.add_input(Submit('submit', 'Create Account', css_class="btn-success"))
self.helper.layout = Layout(
Div(
'username',
'password',
css_class="col-md-6"
),
Div(
'name',
'age',
css_class="col-md-4"
),
),
username=forms.CharField(max_length=128)
password=forms.CharField(max_length=128, widget=forms.PasswordInput())
name=forms.CharField(max_length=128)
age=forms.IntegerField(required=False)
但是,在视图中,当我使用 {% crispy form %}
时,它向我抛出错误 'tuple' object has no attribute 'fields'
。
我怀疑我的布局没有正确实例化,但不能从这里移动。
自己解决了。解决办法是在 Layout 的末尾多加一个逗号。正确的解法是:
self.helper.layout = Layout(
Div(
'username',
'password',
css_class="col-md-6"
),
Div(
'name',
'age',
css_class="col-md-4"
),
)
通过删除最后一行的逗号。
给定一个表单,我想使用 django-crispy-forms 在 Div 中包装一些字段。
class SignupForm(forms.Form):
def __init__(self, *args, **kwargs):
super(SignupForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_method = 'POST'
self.helper.form_action = ''
self.helper.add_input(Submit('submit', 'Create Account', css_class="btn-success"))
self.helper.layout = Layout(
Div(
'username',
'password',
css_class="col-md-6"
),
Div(
'name',
'age',
css_class="col-md-4"
),
),
username=forms.CharField(max_length=128)
password=forms.CharField(max_length=128, widget=forms.PasswordInput())
name=forms.CharField(max_length=128)
age=forms.IntegerField(required=False)
但是,在视图中,当我使用 {% crispy form %}
时,它向我抛出错误 'tuple' object has no attribute 'fields'
。
我怀疑我的布局没有正确实例化,但不能从这里移动。
自己解决了。解决办法是在 Layout 的末尾多加一个逗号。正确的解法是:
self.helper.layout = Layout(
Div(
'username',
'password',
css_class="col-md-6"
),
Div(
'name',
'age',
css_class="col-md-4"
),
)
通过删除最后一行的逗号。