Esempio n. 1
0
def register(request):
    login_form = LoginForm()
    if request.method == 'GET':  # GET方式访问gate/register模块
        register_form = RegistrationForm()
        return render(
            request, 'users/gate.html', {
                'login_form': login_form,
                'register_form': register_form,
                'is_in_register': True
            })
    elif request.method == 'POST':  # 处理register功能的POST请求
        register_form = RegistrationForm(request.POST)
        if register_form.is_valid():
            username = register_form.cleaned_data['username']
            email = register_form.cleaned_data['email']
            password = register_form.cleaned_data['password2']

            # 使用内置User自带create_user方法创建用户,不需要使用save()
            user = User.objects.create_user(username=username,
                                            password=password,
                                            email=email)
            Utils.create_user_media(username)

            # 如果直接使用objects.create()方法后不需要使用save()
            user_profile = UserProfile(user=user)
            user_profile.save()

            # 新建新用户相关的类名关系表
            Utils.create_user_classifiedtype(user)

            return render(
                request, 'users/gate.html', {
                    'login_form': login_form,
                    'register_form': register_form,
                    'register_success': True
                })
        else:
            return render(
                request, 'users/gate.html', {
                    'login_form': login_form,
                    'register_form': register_form,
                    'is_in_register': True
                })