0

我有一个团队注册应用程序。用户注册成为团队的一员。当他们这样做时,视图会添加一个团队成员并将用户添加到身份验证数据库中。

但是,当团队模型返回无效数据时,user.save() 方法正在添加用户名、密码和电子邮件。

因此,当用户更正团队注册并单击提交时,他们现在会被告知用户名已被使用。

我想要发生的是在验证团队成员之后添加用户名等。

有什么建议么?

这是视图:

def register(request, **kwargs):
    if request.method == 'POST':
        form = SimpleRegForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['username']
            email = form.cleaned_data['email']
            password = form.cleaned_data['password1']
            user = User.objects.create_user(username, email, password)
            user.save()
            form.save()

            # Send an email to the admin letting them know that a person registered
            subject = render_to_string('teamregistration/email_subject.txt')
            message = render_to_string('teamregistration/email_body.txt',
                                       {'first_name':form.cleaned_data['first_name'], 'last_name':form.cleaned_data['last_name'], 'tbi_region':form.cleaned_data['tbi_region']})
            recipients = ['XXXXXX@XXXXXX.XXX', 'XXXXXX@XXXXXX.XXX']
            send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, recipients)

            return HttpResponseRedirect('/tbi-team-register/registration-submitted/')
    else:
        form = SimpleRegForm()

    return render_to_response('teamregistration/form.html', {'form':form}, context_instance=RequestContext(request))
4

1 回答 1

0

您所要做的就是删除 user.save()。

于 2011-07-29T14:38:08.260 回答