Проблема 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})