Форма на перенаправленной странице автоматически получает сообщение POSTED, выдавая ошибку MULTI DICT KEY VALUE - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь реализовать функцию регистрации, входа и проверки электронной почты в моем проекте Django. Вот представление проверки электронной почты. Письмо было успешно получено из моего представления регистрации, и представление code_verify показывает правильно:

def code_verify(request):
 values={}
 global v_msg
 global Class
 global Email
 global Password
 global Name
 global registered
 if request.method=='POST':

    if request.POST['vcode']==str(code):

        user = User.objects.create_user( username=Email,
        first_name=Name[0],last_name=Name[1],email=Email, password=Password)
        user.set_password(Password)
        user.is_active = True
        user.save()
        profile1=profile()
        profile1.user=user
        profile1.Class=Class
        profile1.save()
        Name=""
        Class=""
        Email=""
        Password=""
        registered=True
        return redirect('signin',permanent=True)
    else:
        values['err']=True
        values['invalid']="The code is incorrect"
        values['email']=Email

return render(request,'signin/email_verification.html',context=values)

Все работает нормально, кроме перенаправления на страницу входа после успешной проверки электронной почты. Проблема в том, что когда я отправляю OTP в представлении code_verify, запрос POST также автоматически отправляется в представление входа. Я не хочу, чтобы он автоматически размещался до того, как я ввел свои учетные данные. Вот мой знак зрения:

def signin(request):
global registered
message={'registered':registered,'pwd_change':pwd_change}
if request.user.is_authenticated:
    print("HoUSTON, WE HAVE A PROBLEM")
if request.method=='POST':
    user =authenticate(username=request.POST['email'],password=request.POST['pwd'])
    if user:
        if user.is_active:
            login(request, user)
            return redirect('home',username=user.username)
    else:
        message['cred_err']=True

return render(request,'signin/signin.html',context=message)

Вот мой urls.py:

from django.urls import path
from . import views
import string
import random
urlpatterns = [
path('',views.signin,name='signin'),
path('password_reset/',views.password_reset,name='password_reset'),
path('signup/',views.signup,name='signup'),
path('',views.lg_out,name='lg_out'),
path('',views.code_verify,name='code_verify'),
]

Выдает ошибку MULTI DICT KEY VALUE. Пожалуйста, помогите!

...