我有模特:
class TreeComment(models.Model):
parent = models.ForeignKey('self', null=True, blank=True, verbose_name='Parent')
title = models.TextField(_('Title'), blank=True)
我想调用TreeComment.objects.all()
并将结果值放入某个列表中:
for e in TreeComment.objects.all():
some_list += e
是否可以将所有值放入列表中,包括父值?
不是整个父对象而只是id(以防止不必要的DB调用和连接)。 之后,我将在业务逻辑中没有DB调用的情况下处理它。
答案 0 :(得分:2)
如果您要将查询作为列表提取回来,请尝试
TreeComment.objects.values_list()
会返回[(1, u'some title'), ...]
1作为父ID,而你的标题'是标题的值
答案 1 :(得分:0)
我在想2个解决方案
1)在TreeComment类中创建方法get_parent(self)。然后在你的模板中你可以做到 {%for somem in some_list%} {{elem.get_parent.whatever_method}} {%endfor%}
2)您可以使用包含(,标题)的自定义结构,并从您的TreeComment.objects.all()中读取填充方法,获取父级和标题,并使用您的自定义伴侣填充您的列表