簡體   English   中英

Django嘗試創建自定義登錄表單失敗

[英]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)

同樣對於電子郵件,您可以使用EmailFieldEmailInput小部件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM