如果条件为真,则在另一个视图内调用详细视图

问题描述 投票:0回答:1

如果条件为真,我想在视图内部调用详细视图,但是我总是遇到相同的错误:“上下文必须是字典而不是str。”

我的代码是:

class VotacionView(LoginRequiredMixin, FormMixin, DetailView, request):

model = Votacion
form_class = realizarVotacionForm
template_name = "RealizarVotacion.html"

success_url = reverse_lazy('home')

def __init__(self, **kwargs):
    super().__init__(**kwargs)

def get_success_url(self):
    return reverse('home')

def get_context_data(self, **kwargs):
    if not self.object.voto_rectificable:
        if UsuarioVotacion.objects.filter(user=self.request.user, Votacion=self.object).exists():
            return reverse('estadisticasvotacionsimple', kwargs={'pk': self.object.pk})

more stuff...
python django templates view pycharm
1个回答
0
投票

您不能跳出get_context_data方法。但您可以这样做:

def get_success_url(self):
    if self.jump:
        return reverse('estadisticasvotacionsimple', kwargs={'pk': self.object.pk})
    return reverse('home')

def get_context_data(self, **kwargs):
    if not self.object.voto_rectificable:
        if UsuarioVotacion.objects.filter(user=self.request.user, Votacion=self.object).exists():
            self.jump=True
            return super(Classname, self).get_context_data(**kwargs)
        else:
            self.jump=False
        ......
© www.soinside.com 2019 - 2024. All rights reserved.