Проблема httpresponseredirect:unable to redirect to homepage

Я продолжаю получать этот редирект неправильно, либо я неправильно выбрал код, либо он продолжает работать в бесконечном цикле.

urls.py первое приложение


urlpatterns = [
    path("",views.pomo,name="pomo"),
    path("agenda/",views.agenda,name="agenda"),
    path("notes/",views.notes,name="notes"),
  ]

urls.py main

urlpatterns = [
    path('admin/', admin.site.urls),
    path("", include('pomofocus.urls')), 
    path ("login/", include('accounts.urls'))
]


urls.py accounts (2-е приложение)

urlpatterns = [
    path("register/",views.register_request, name="register")
]

views.py

from django.contrib import messages

def register_request(request):
    if request.method == "POST":
        form = NewUserForm(request.POST)
        if form.is_valid():
            #save user
            user = form.save()
            #login user
            login(request,user)
            #send success message 
            messages.success(request,"Congrats you are registered now")
            return redirect(“pomofocus:pomo")
        
        messages.error(request,"Unsuccesful registration.Try again.")
    form = NewUserForm()
    return render(request,"account/registration.html",context={"register_form":form})

Вы создаете новую форму, если POST-запрос не увенчался успехом. Вы должны сохранить старую форму, чтобы можно было отображать ошибки. Таким образом, вы должны изменить логику так, чтобы создавать новую форму только в том случае, если запрос не является POST-запросом:

from django.contrib import messages

def register_request(request):
    if request.method == 'POST':
        form = NewUserForm(request.POST, request.FILES)
        if form.is_valid():
            #save user
            user = form.save()
            #login user
            login(request,user)
            #send success message 
            messages.success(request, 'Congrats you are registered now')
            return redirect('pomo')
        else:
            messages.error(request, 'Unsuccesful registration.Try again.')
    else:  # ← only in case it is not a POST request
        form = NewUserForm()
    return render(request,'account/registration.html', {'register_form': form})
Вернуться на верх