Django 当满足条件时,如果失败,则在基于类的视图中使用成功url重定向到另一页

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:

当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:
                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')