簡體   English   中英

'UserCreationForm'對象在Django中沒有屬性'FormWrapper'

[英]'UserCreationForm' object has no attribute 'FormWrapper' in Django

這是我的views.py

為什么我要面對這個問題,以前的形式是FormWrapper已從新的Django版本中刪除。

 from django.shortcuts import render
 from django.http import HttpResponse
 from books.models import Author
from models import ContactForm 
from django.db.models import Q
#from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
from django.core.mail import send_mail
from django.template import RequestContext, loader
from django.template.engine import (
                         _context_instance_undefined,                     _dictionary_undefined, _dirs_undefined,
                           )
#from django oldforms as forms
 from django.contrib.auth.forms import UserCreatForm

def register(request):
  form = UserCreationForm()
   if request.method == 'POST':
       data = request.POST.copy()
       errors = form.get_validation_errors(data)
       if not errors:
          new_user = form.save(data)
          return HttpResponseRedirect("/books/")
   else:
       data, errors = {}, {}
   return render_to_response("registration/register.html", {
         'form' : form.FormWrapper(form, data, errors)
          })

Yikes-這是一些難看的代碼。 您確實回答了自己的問題-導入失敗,因為該類不再存在。

為什么不只是:

from django.contrib.auth.forms import UserCreationForm
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from django.shortcuts import render


def register(request):
    form = UserCreationForm(data=request.POST or None)
    if request.method == 'POST' and form.is_valid():
        form.save()
        return HttpResponseRedirect(reverse('name-of-books-url'))
    return render(request, 'registration/register.html', {'form': form}

暫無
暫無

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

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