8

我是 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 的正确方法吗
  • 我可以把这段代码放在哪里,这样它就可以与我的应用程序的其余部分分开

谢谢您的回答。

4

1 回答 1

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

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

例子:

...
form = UserCreationForm(request.POST)
if form.is_valid():
   user = form.save()
...
于 2012-12-16T12:32:36.613 回答