如何正确使用django UserCreationForm

时间:2012-12-16 10:23:30

标签: python django authentication django-forms

我是Django的新手,刚刚开始我的第一个网站。我正在尝试为新用户设置注册。

我使用内置视图进行登录和注销但没有注册,在文档中,它说我应该使用内置格式:UserCreationForm。

我的观点代码是:

def register(request):
if request.method =='POST':
    form = UserCreationForm(request.POST)
    if form.is_valid():
        user = User.objects.create_user(form.cleaned_data['username'], None, form.cleaned_data['password1'])
        user.save()
        return render_to_response('QCM/index.html') # Redirect after POST
else:
    form = UserCreationForm() # An unbound form

return render_to_response('register.html', {
    'form': form,
},context_instance=RequestContext(request))

它运行正常,但我不满意,因为此代码是在views.py中编写的,它处理我的应用程序的核心(多项选择题)。

我的问题是:

  • 这是使用UserCreationForm
  • 的正确方法吗?
  • 我可以在哪里放置此代码,以便将其与其余部分分开 我的应用

感谢您的回答。

1 个答案:

答案 0 :(得分:4)

  1. Django是模块化的,因此您可以编写一个单独的帐户用户管理应用程序,可以处理用户创建和管理。 在这种情况下,您将register的代码放在帐户应用的views.py中。

  2. 您可以直接保存UserCreationForm,它将为您提供用户对象。

  3. 示例:

    ...
    form = UserCreationForm(request.POST)
    if form.is_valid():
       user = form.save()
    ...