如何正确使用Django

如何正确使用Django

本文介绍了如何正确使用Django UserCreationForm的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新来的Django和我刚开始我的第一个网站。我试图设置新用户的注册。

我用的是内置的视图登录和注销却是没有注册,在doc,它说,我应该使用内置的形式:UserCreationForm

我的观点的code是:

  DEF注册(要求):
如果request.method =='POST':
    形式= UserCreationForm(request.POST)
    如果form.is_valid():
        用户= User.objects.create_user(form.cleaned_data [用户名],无,form.cleaned_data ['密码1'])
        user.save()
        POST后返回render_to_response('QCM / index.html的)#重定向
其他:
    形式= UserCreationForm()#绑定表单返回render_to_response('register.html',{
    形式:形式,
},context_instance = RequestContext的(要求))

它工作正常,但我并不满意,因为这code被写入在处理我的应用程序的核心(选择题)的views.py。

我的问题是:


  • 这是使用UserCreationForm的正确方法

  • 我在哪里可以把这个code所以它会从其余部分分开
    我的应用程序

感谢您的答案。


解决方案

  1. Django是模块化的,所以你可以写一个单独的帐户的或的用户管理的应用程序,可以处理用户创建,管理。
    在这种情况下,你把为的code寄存器 views.py 中的帐户的应用程序。


  2. 您可以直接保存 UserCreationForm ,这将给你的用户对象。


例如:

  ...
形式= UserCreationForm(request.POST)
如果form.is_valid():
   用户= form.save()
...

I am new to Django and am just starting my first website. I am trying to set registration for new users.

I used the built in view for login and logout but there is none for registration, in the doc, it says that I should use built in form : UserCreationForm.

The code of my view is :

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))

It works fine but I am not satisfied as this code is written in the views.py that handles the core of my application (multiple choice question).

My questions are :

  • Is this the correct way of using the UserCreationForm
  • Where could I put this code so it would be separated from the rest ofmy app

Thank you for your answers.

解决方案
  1. Django is modular, so you can write a separate accounts or user management app that can handle user creation, management.In that case, you put the code for register in the views.py of accounts app.

  2. You can directly save the UserCreationForm which will give you user object.

example:

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

这篇关于如何正确使用Django UserCreationForm的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-28 04:42