注册时如何解决(密钥错误)?

时间:2020-06-04 16:57:00

标签: python django

我尝试在用户注册时创建用户注册,他必须移至最后一个称为“完整注册”的部分。
我认为任务是按会话完成的,我需要知道在这种情况下使用会话是否正确。如果使用会话良好,那么每次出现关键错误时,如何保存第一种形式的数据?
我确定complete_register函数中的save方法是错误的,但是我不知道如何继续完成此任务。

views.py

from django.shortcuts import render, redirect
from .forms import RegistrationForm, CompleteRegisterForm
from importlib import import_module
from django.conf import settings


def register(request):
    if request.method == "POST":
        user_form = RegistrationForm(request.POST)
        if user_form.is_valid():
            user_form.save(commit=False)
            SessionStore = import_module(settings.SESSION_ENGINE).SessionStore
            user_session = SessionStore()
            user_session['continue_form'] = user_form.clean()
            # user_session.create()
            return redirect("account:complete-register")
        else:
            error_msg = "something went wrong"
        return render(request, "account/registration.html", {"user_form": user_form, "error_msg": error_msg})
    else:
        user_form = RegistrationForm()
        return render(request, "account/registration.html", {"user_form": user_form})


def complete_register(request):
    if request.method == "POST":
        # get the rest of data by session
        user_session = request.session
        complete_form = CompleteRegisterForm(request.POST)
        if complete_form.is_valid():
            form = user_session['continue_form'].save()
            complete_form.save()
            return redirect("music:albums")
        else:
            error_msg = "something went wrong"
        context = {"complete": complete_form, "error_msg": error_msg}
        return render(request, "account/complete_register.html", context)
    else:
        complete_form = CompleteRegisterForm()
        return render(request, "account/complete_register.html", {"complete": complete_form})

0 个答案:

没有答案