无法理解如何在 Django 模板中注入 crisp_form 标签
Failing to understand how inject crisp_form tags in django template
我正在努力理解 Django crispy 形式,但是我不知道我犯的错误是在我的 forms.py 上还是在我的 login.html 上,因此我没有放在 crispy 中正确地形成标签 我在加载 html 页面时收到以下错误。
AttributeError 在 /login/
'tuple'对象没有属性'fields'
代码如下:forms.py
from django import forms
from phonenumber_field.modelfields import PhoneNumberField
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Submit
class UserAccounts(forms.Form):
name = forms.CharField(label='First Name', max_length=100)
last_name = forms.CharField(label='Surname', max_length=100)
phone_number = PhoneNumberField()
email = forms.EmailField()
password = forms.CharField(widget=forms.PasswordInput)
verify_password = forms.CharField(widget=forms.PasswordInput)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper
self.helper.form_method = 'POST'
self.helper.layout = (
'name',
'last_name',
'phone_number',
'email',
'password',
'verify_password',
Submit('submit', 'Submit'),
)
代码如下:login.html
<!DOCTYPE html>
{% load crispy_forms_tags %}
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login</title>
</head>
<body>
{% crispy form form.helper %}
</body>
</html>
你必须加载 crispy_forms_tags 然后你就可以轻松地使用脆皮形式了。
{% load crispy_forms_tags %}
...
{{ form |crispy}}
...
我正在努力理解 Django crispy 形式,但是我不知道我犯的错误是在我的 forms.py 上还是在我的 login.html 上,因此我没有放在 crispy 中正确地形成标签 我在加载 html 页面时收到以下错误。
AttributeError 在 /login/
'tuple'对象没有属性'fields'
代码如下:forms.py
from django import forms
from phonenumber_field.modelfields import PhoneNumberField
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Submit
class UserAccounts(forms.Form):
name = forms.CharField(label='First Name', max_length=100)
last_name = forms.CharField(label='Surname', max_length=100)
phone_number = PhoneNumberField()
email = forms.EmailField()
password = forms.CharField(widget=forms.PasswordInput)
verify_password = forms.CharField(widget=forms.PasswordInput)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper
self.helper.form_method = 'POST'
self.helper.layout = (
'name',
'last_name',
'phone_number',
'email',
'password',
'verify_password',
Submit('submit', 'Submit'),
)
代码如下:login.html
<!DOCTYPE html>
{% load crispy_forms_tags %}
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login</title>
</head>
<body>
{% crispy form form.helper %}
</body>
</html>
你必须加载 crispy_forms_tags 然后你就可以轻松地使用脆皮形式了。
{% load crispy_forms_tags %}
...
{{ form |crispy}}
...