【发布时间】:2010-11-25 12:50:32
【问题描述】:
嘿,我有这样的模型
def Photo(models.Model):
# Photo object fields...
def PhotoThread(models.Model):
photo = models.ForeignKey(Photo)
message = models.TextField(blank=True)
reply_to = models.ForeignKey('self', related_name='replies', null=True, blank=True)
votes = models.IntegerField()
如您所见,Thread 对象有一个 reply_to 字段,因此 Thread 可以成为其他 Thread 的子级。
我可以做一些事情,比如 -
photo = Photo.objects.get(pk=1)
threads = photo.photothread_set.all()
这会将线程获取到照片,但是,此系统允许回复也有回复。
我将如何遍历所有回复并获取这些回复(一直到我们拥有的最大回复数)。
我想将其显示为嵌套的 HTML 列表。我还希望能够通过“投票”字段订购所有主题和回复。
谢谢
【问题讨论】:
-
有几种方法可以构建这样的列表。请提供一个示例列表,准确显示您想要的结构。
-
请更新您的问题。不要添加 cmets。修正问题。
-
根据线程的大小,这种方法可能会很慢。查看 django-mptt 以更有效地使用 Django code.google.com/p/django-mptt 处理树
标签: python django list foreign-keys nested