如何正确使用django UserCreationForm

ltb*_*esh 7 python authentication django 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))
Run Code Online (Sandbox Code Playgroud)

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

我的问题是:

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

谢谢您的回答.

Roh*_*han 5

  1. Django 是模块化的,因此您可以编写单独的帐户用户管理应用程序来处理用户创建、管理。在这种情况下,你把代码registerviews.py帐户应用程序。

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

例子:

...
form = UserCreationForm(request.POST)
if form.is_valid():
   user = form.save()
...
Run Code Online (Sandbox Code Playgroud)