Django 当满足条件时,如果失败,则在基于类的视图中使用成功url重定向到另一页
当if条件有效时,我想将页面重定向到success.html页面,如果无效则重定向到faild.html页面。如何使用基于类的视图Django 当满足条件时,如果失败,则在基于类的视图中使用成功url重定向到另一页,django,django-forms,django-views,Django,Django Forms,Django Views,当if条件有效时,我想将页面重定向到success.html页面,如果无效则重定向到faild.html页面。如何使用基于类的视图 class LogView(FormView): form_class = LogForm template_name = 'log.html' success_url='failed' def get_success_url(self): if not self.success_url:
class LogView(FormView):
form_class = LogForm
template_name = 'log.html'
success_url='failed'
def get_success_url(self):
if not self.success_url:
raise ImproperlyConfigured("No URL to redirect
to.Provide a success_url.")
return str(self.success_url)
def form_valid(self,form):
cc=''
nam1 = self.request.POST.get('nam')
roll1 = self.request.POST.get('roll')
obj=Register.objects.all()
for i in obj:
if str(i.name) == str(nam1) and str(i.rollno) == str(roll1):
else:
pass
else:
pass
您可以为此使用
form\u valid
和form\u invalid
方法:
class LogView(FormView):
form_class = LogForm
template_name = 'log.html'
success_url='failed'
def form_valid(self, form):
"""
If the form is valid, redirect to the supplied URL.
"""
nam1 = self.request.POST.get('nam')
roll1 = self.request.POST.get('roll')
obj=Register.objects.filter(name=nam1, rollno=roll1).exists()
if obj:
return HttpResponseRedirect(self.get_success_url())
else:
return HttpResponseRedirect('failed')
def form_invalid(self, form):
"""
If the form is invalid
"""
return HttpResponseRedirect('some_invalid_url')
您的条件是什么?如果str(i.name)==str(nam1)和str(i.rollno)==str(roll1):当出现错误条件时,如何重定向?我的代码是编写的below@Anjitha只需添加
else:return HttpResponseRedirect('some\u invalid\u url')
然后,if和else条件转到同一页面(仅执行了else部分)。我所做的是写在下面的答案中,请检查该查询是否非常有用。现在它运行良好。谢谢。
class LogView(FormView):
form_class = LogForm
template_name = 'log.html'
success_url='success'
def form_valid(self, form):
nam1 = self.request.POST.get('nam')
roll1 = self.request.POST.get('roll')
obj=Register.objects.filter(name=nam1, rollno=roll1).exists()
if (obj==True):
return HttpResponseRedirect(self.get_success_url())
else:
return HttpResponseRedirect('failed')