是否可以将值添加到 context 到 for 循环中?
Is it possible to add values to context into a for loop?
我有一个 for 循环来迭代一个列表。
在每次迭代中,我都有不同的值,我想将此值添加到我的上下文中。
我正在尝试使用 context.update,但每次 returns 都是空上下文。
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 returns 数据正确。
我唯一需要的是将来自 cCard 的内容存储到上下文 ['card_list'],但我所做的每一次尝试都是空结果。
请不要那样过滤。这将产生 n+1 个查询,每个 Column
个查询。您可以使用以下方法检索最后的 Card
s:
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(<b>column__board=self.object</b>)
print(context)
return context
您可以使用两个连续的下划线 (__
) 来“透视”关系,例如 ForeignKey
、ManyToManyField
等
我有一个 for 循环来迭代一个列表。 在每次迭代中,我都有不同的值,我想将此值添加到我的上下文中。 我正在尝试使用 context.update,但每次 returns 都是空上下文。
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 returns 数据正确。 我唯一需要的是将来自 cCard 的内容存储到上下文 ['card_list'],但我所做的每一次尝试都是空结果。
请不要那样过滤。这将产生 n+1 个查询,每个 Column
个查询。您可以使用以下方法检索最后的 Card
s:
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(<b>column__board=self.object</b>)
print(context)
return context
您可以使用两个连续的下划线 (__
) 来“透视”关系,例如 ForeignKey
、ManyToManyField
等