我正在开发一个生成请求的应用程序(在市政厅的上下文中,而不是Web请求)。我正在使用Django 1.11。
在我的购物区,我有一个使用get_context_data
的视图来获取我的请求的对象并列出它们。我的问题是有几个扇区,如果前一个扇区批准,请求将只列在下一个扇区。
在我的models.py
我有一个请求(Solicitacao)
的课程和与我的请求相关的课程秘书批准(SecretarioAprovacao)
。
我需要做的是,在显示数据之前,检查所有请求并仅列出分配给用户的请求,并在字段True
中包含secretario_aprovacao
models.py
class SecretarioAprovacao(models.Model):
secretario_relacionamento = models.ForeignKey(Solicitacao, on_delete=models.CASCADE)
secretario_aprovacao_CHOICES = (
(True, 'Sim'),
(False, 'Não')
)
secretario_aprovacao = models.BooleanField("Aprovar Solicitação?",
choices = secretario_aprovacao_CHOICES,
default = True,
)
class Meta:
verbose_name = "Secretario Aprovação"
verbose_name_plural = "Secretario Aprovações"
view.py
class Compraslist(LoginRequiredMixin, ListView):
model = Solicitacao
template_name = 'compraslist.html'
def get_context_data(self, **kwargs):
context = super(Compraslist, self).get_context_data(**kwargs)
context['solicitacoes'] = Solicitacao.objects.all()
return context
答案 0 :(得分:0)
如果我理解你的问题,应该这样做:
{{1}}
答案 1 :(得分:0)
您没有展示自己的Solicitacao
型号,所以我无法给出完整的答案。我假设有一个类似solicitacao_user
的字段,表示请求的所有者或创建者。
如果我理解你的问题,你可以尝试这样的事情。它显示属于当前登录用户的所有请求,并且至少还有一个True
批准。
# views.py
class Compraslist(LoginRequiredMixin, ListView):
# ... more code ...
def get_context_data(self, **kwargs):
ctx = super().get_context_data(**kwargs)
approved_pk_set = set(
e.pk for e in SecretarioAprovacao.objects.filter(secretario_aprovacao=True))
ctx['solicitacoes'] = Solicitacao.objects.filter(pk__in=approved_pk_set, solicitacao_user=self.request.user)
return ctx