【问题标题】:How to use django UserCreationForm correctly如何正确使用 django UserCreationForm
【发布时间】:2012-12-16 10:23:29
【问题描述】:

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

感谢您的回答。

【问题讨论】:

    标签: python django authentication django-forms


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

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

    示例:

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

    【讨论】:

      猜你喜欢
      • 2015-03-25
      • 2018-07-23
      • 2011-10-04
      • 2018-03-01
      • 1970-01-01
      • 2019-04-14
      • 2018-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多