Django 用户注册的方法

分别为 User 模型和 UserProfile 模型各建一个表单.

class UserForm(django.forms.ModelForm):
    class Meta:
        model = User  

class UserProfileForm(django.forms.ModelForm):
    class Meta:
        model = UserProfile
        exclude = ['user']

为他们增加前缀,并一起显示在相同的HTML表单元素中。 在先后保存User 和 UserProfile之前,在视图中检查并确认二者都是有效的。

def register(request):
    if request.method == 'POST':
        uf = UserForm(request.POST, prefix='user')
        upf = UserProfileForm(request.POST, prefix='userprofile')
        if uf.is_valid() * upf.is_valid():
            user = uf.save()
            userprofile = upf.save(commit=False)
            userprofile.user = user
            userprofile.save()
            return django.http.HttpResponseRedirect(…something…)
    else:
        uf = UserForm(prefix='user')
        upf = UserProfileForm(prefix='userprofile')
    return django.shortcuts.render_to_response('register.html', 
                                               dict(userform=uf,
                                                    userprofileform=upf),
                                               context_instance=django.template.RequestContext(request))

在文件 register.html 中:

<form method="POST" action="">
    {% csrf_token %}
    {{userform}}
    {{userprofileform}}
    <input type="submit">
</form>

这个方法还没试过,想用Django实现普通用户注册,登录怎么做也不知道。

Best way to do register a user in Django

猜你喜欢

转载自blog.csdn.net/ftell/article/details/80217339