Невозможно выполнить условное перенаправление из представления на основе класса Django
Я пытаюсь перенаправить пользователя, который уже зарегистрировался, на другое представление. вот код для views.py
Однако, когда qs.exists() = true, я получаю ошибку 'Представление Lpage.views.homeview не вернуло объект HttpResponse. Вместо этого оно вернуло None.'
Я новичок, прочитал документацию, но не могу найти, где я ошибаюсь. Спасибо
from django.shortcuts import render, redirect
from django.views import View
from Lpage.forms import SubscriberEntryForm
from Lpage.models import Subscriber
class homeview(View):
def get(self,request):
msg = request.session.get('msg', False)
if(msg):
del(request.session['msg'])
return render(request,'Lpage/index.html')
def post(self, request):
form = SubscriberEntryForm(request.POST or None)
if form.is_valid():
obj = form.save(commit=False)
qs = Subscriber.objects.filter(email__iexact=obj.email)
if qs.exists():
return redirect('messageview')
else:
obj.save()
request.session['msg'] = "msg"
return redirect(request.path)
def messageview(request):
return render(request,'Lpage/messages.html',{})
redirect ожидает, что вы передадите URL, но вы дали ему messageview
, который на самом деле является классом представления.
Так что вам нужно дать redirect
URL messageview
.