[英]Django fails on attempt to create a custom login form
我嘗試創建一個自定義登錄表單,因此我在forms.py
添加了LoginForm
類:
from django.forms import forms, CharField, BooleanField, TextInput, PasswordInput
class LoginForm(forms.Form):
email = CharField(label='email', max_length=255, widget=TextInput("E-mail"))
password = CharField(label='password', max_length=255, widget=PasswordInput("Password"))
remember = BooleanField(label='remember', required=False)
但這會引發表單加載:
File "/home/ghostman/Projects/asknow/asknow/asknow/urls.py", line 22, in <module>
url(r'^', include('app.urls')),
File "/home/ghostman/Projects/asknow/env/lib/python3.6/site-packages/django/urls/conf.py", line 34, in include
urlconf_module = import_module(urlconf_module)
File "/home/ghostman/Projects/asknow/env/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/ghostman/Projects/asknow/asknow/app/urls.py", line 3, in <module>
from app import views
File "/home/ghostman/Projects/asknow/asknow/app/views.py", line 6, in <module>
from app.forms import LoginForm
File "/home/ghostman/Projects/asknow/asknow/app/forms.py", line 4, in <module>
class LoginForm(forms.Form):
File "/home/ghostman/Projects/asknow/asknow/app/forms.py", line 5, in LoginForm
email = CharField(label='email', max_length=255, widget=TextInput("E-mail"))
File "/home/ghostman/Projects/asknow/env/lib/python3.6/site-packages/django/forms/widgets.py", line 284, in __init__
attrs = attrs.copy()
AttributeError: 'str' object has no attribute 'copy'
似乎在Django內部...怎么了? 怎么修?
小部件TextInput()
和PasswordInput()
不接受任何位置參數。
嘗試:
class LoginForm(forms.Form):
email = CharField(label='email', max_length=255, widget=TextInput())
password = CharField(label='password', max_length=255, widget=PasswordInput())
remember = BooleanField(label='remember', required=False)
同樣對於電子郵件,您可以使用EmailField
和EmailInput
小部件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.