Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何正确使用django UserCreationForm_Python_Django_Authentication_Django Forms - Fatal编程技术网

Python 如何正确使用django UserCreationForm

Python 如何正确使用django UserCreationForm,python,django,authentication,django-forms,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.

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

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

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

  • 例如:

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