0

私は DjangoBook チュートリアルに従っていますが、第 14 章 (ユーザー登録) で問題が発生しました。

django.contrib.auth.formsにはクラスがあります。呼び出されUserCreationFormたに基づいて新しいクラスを作成しようとしていますUserCreationFormRegisterForm

これはdjango.contrib.auth.formsRegisterFormの私のクラスです

class RegisterForm(UserCreationForm):
    email = forms.EmailField(label="Email")
    fullname = forms.CharField(label="Full name")

    class Meta:
        model= User
        fields = ("username","fullname","email",)

これがビュー機能です

def register(request):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            new_user = form.save()
            return HttpResponseRedirect("/books/")
    else:
        form = RegisterForm(UserCreationForm)
    return render(request, "registration/register.html", {
        'form': form,
    })

ビューに名前をインポートできないという ImportError が表示される理由がわかりRegisterFormません。誰か助けてください。

これは私のスタックトレースです

Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/register/

Django Version: 1.5.1
Python Version: 2.7.2
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.staticfiles',
'django.contrib.admin',
'mysite.books')
Installed Middleware:
 ('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Traceback:
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
103.                     resolver_match = resolver.resolve(request.path_info)
File "C:\Python27\lib\site-packages\django\core\urlresolvers.py" in resolve
319.             for pattern in self.url_patterns:
File "C:\Python27\lib\site-packages\django\core\urlresolvers.py" in url_patterns
347.         patterns = getattr(self.urlconf_module, "urlpatterns",                      self.urlconf_module)
File "C:\Python27\lib\site-packages\django\core\urlresolvers.py" in urlconf_module
342.             self._urlconf_module = import_module(self.urlconf_name)
File "C:\Python27\lib\site-packages\django\utils\importlib.py" in import_module
35.     __import__(name)
File "C:\Users\Ray Lim\Desktop\project\home\username\djcode\mysite\mysite\urls.py" in    <module>
14. from mysite.books import views
File "C:\Users\Ray    Lim\Desktop\project\home\username\djcode\mysite\mysite\books\views.py" in <module>
11. from django.contrib.auth.forms import RegisterForm

Exception Type: ImportError at /register/
Exception Value: cannot import name RegisterForm
4

1 に答える 1

1

Django 1.5の時点で、モジュールにはそのようなフォームはありませんdjango.contrib.auth.forms.

そのようなものを強調表示するエディターを使用することをお勧めします。PyCharmなど。

Pythonそれでも、要点は、学ぶには少なくとも の基本的な理解が必要Djangoです。ほら、ステートメント

class RegisterForm(UserCreationForm)    
    ...
# And then:
form = RegisterForm(UserCreationForm) 

Python の観点からはほとんど意味がありません。

あなたは Python コードを書いています。パイソンで。Pythonを学ぶ必要があります。はい、別の方法で行くことは可能ですが、それははるかに困難です。

于 2013-05-02T07:20:35.320 に答える