Django根据用户数据呈现不同的形式

时间:2019-08-22 18:27:42

标签: django django-forms django-templates django-views

我在1个模板中有3个表单

  1. 表格重置
  2. 表格验证
  3. 表单密码

a

def get(self, request):
    user = request.user

    verif = None
    verification_form = None
    password_form = None
    reset_form = None

    if verif == 'verif':
        verification_form = VerificationCode()
    elif verif == 'change':
        password_form = SetPasswordForm(user)
    else:
        reset_form = ResetPasswordForm()
    return self.render_to_response({
        'base_url': settings.BASE_URL,
        'reset_form': reset_form,
        'verification_form': verification_form,
        'password_form': password_form,
        'verif': verif
    })

def post(self, request):
    user = request.user

    verif = None
    verification_form = None
    password_form = None
    reset_form = None
    if verif == None:
        reset_form = ResetPasswordForm(request.POST)
        if reset_form.is_valid():
            messages.success(
                request,
                _('Your reset password request has been processed, please check your email.'))
            verif = "verif"
        else:
            print(reset_form.errors)

    elif verif == 'verif':
        verification_form = VerificationCode(request.POST)
        if verification_form.is_valid():
           messages.success(
                    request,
                    _('Your Account has verified.'))
            verif = "change"
        else:
            print(verification_form.errors)

    else:
        password_form = SetPasswordForm(user, request.POST)

        if password_form.is_valid():
        else:
            messages.error(request, password_form.errors)

    return self.render_to_response({
        'base_url': settings.BASE_URL,
        'reset_form': reset_form,
        'verification_form': verification_form,
        'password_form': password_form,
        'verif': verif
    })

我希望页面第一次出现时,它将使表单重置, 用户提交后,它将进行表单验证, 用户再次提交后,它将呈现表单密码。 如何在没有参数的情况下实现此目标?

0 个答案:

没有答案