我是pythondjango的初学者。并尝试在教程的帮助下建立一个发布文章的网站。我被困在用户创建表单上了。我已经使用UserCreationForm创建了一个表单,但是当我提交表单时,我既不能提交表单,也不能在页面上得到任何错误消息。在
我的视图.py代码
from django.shortcuts import render_to_response
from django.contrib.auth import authenticate
from django.http import HttpResponseRedirect
from django.contrib import auth
from django.template.context_processors import csrf
from django.contrib.auth.forms import UserCreationForm
def register_user(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/accounts/register_success')
args = {}
args.update(csrf(request))
args['form'] = UserCreationForm()
print args
return render_to_response('register.html', args)
def register_success(request):
return render_to_response('register_success.html')
注册.html
^{pr2}$注册_成功.html
{% extends "base.hml" %}
{% block content %}
<h2>You have registered!</h2>
<p>Click <a href="/accounts/login/">Here</a> to login again</p>
{% endblock %}
问题是你总是在创建一个空白表单。在
这意味着当表单无效时,POST请求不会出现任何错误。在
相反,您只应该为GET请求创建空白表单。在
^{pr2}$注意,我通过使用
render
而不是过时的render_to_response
简化了视图。这意味着你不需要手动处理csrf。在你可以使用Django Generic Views,特别是CreateView,它会让你的生活更轻松。你可以这样使用它:
将此添加到您的
^{pr2}$urls.py
中,您就可以开始:相关问题 更多 >
编程相关推荐