为什么我面临这个问题,旧的形式是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)
})
答案 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}