'UserCreationForm'对象在Django中没有属性'FormWrapper'

时间:2015-10-23 16:49:26

标签: python 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)
          })

1 个答案:

答案 0 :(得分:0)

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}