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

我使用内置 View 进行登录和注销,但是没有用于注册的文档,在文档中,它说我应该使用内置形式: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
  • 的正确方法吗
  • 我可以在哪里放置这段代码,以便与其余代码分开
    我的应用程式

  • 谢谢您的回答。

    最佳答案

  • Django是模块化的,因此您可以编写一个单独的帐户或用户管理应用程序来处理用户创建,管理。
    在这种情况下,您将register的代码放入帐户应用程序的views.py中。
  • 您可以直接保存UserCreationForm,它将为您提供用户对象。

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

    关于python - 如何正确使用django UserCreationForm,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13900357/

    10-09 22:21