我有一个for循环来迭代列表。在每次迭代中,我都有一个不同的值,并且我想将此值添加到我的上下文中。我正在尝试使用context.update,但是每次这都返回一个空上下文。
def get_context_data(self, **kwargs):
context = super(Board_dets_view, self).get_context_data(**kwargs)
id_board = self.object.id
context['column_list'] = Column.object.filter(board_id=id_board)
clist = Column.object.values_list('id', flat=True).filter(board_id=id_board)
cCard = Card.object
print(clist)
for i in range(0, clist.count()):
print('i=%s',i)
cCard = Card.object.filter(column_id = clist[i])
print('cCard=%s',cCard)
context.update({'card_list': cCard})
print(context)
return context
cCard返回正确的数据。我唯一需要做的就是将来自cCard的内容存储到context ['card_list']中,但是我所做的任何尝试都没有结果。
请不要那样过滤。这将产生n + 1个查询,每个查询一个Column
。你可以使用以下方法检索的最后一个Card
:
def get_context_data(self, **kwargs):
context = super(Board_dets_view, self).get_context_data(**kwargs)
context['column_list'] = Column.object.filter(board=self.object)
context['card_list'] = Card.object.filter(column__board=self.object)
print(context)
return context
你可以使用两个连续的下划线(__
“穿越”的关系就好了)看ForeignKey
,ManyToManyField
等