可以说我有这个类(简体):复杂的Django过滤器的问题
class Tag (...):
children = models.ManyToManyField(null=True, symmetrical=False)
现在我已经实现的功能get_parents,get_all_ancestors。有没有一个很好的pythonic方式来只是顶级标签?如果我设计了不同的标签(指向父母),我只需要制作get_all_parents().filter(children=None)
。
我的第一个想法是创建一个新的函数,将递归通过所有的父母,并保存那些没有。
但是有没有可能使用过滤器或查询对象来执行相同的操作(使用更少的代码行)?
感谢您的帮助。
[编辑]
当完成时,它应该是一个分层的标签系统。每个标签可以有孩子,父母,但只有孩子得救。我想获得所有顶级标签,这通过许多儿童/儿童孩子指向我的标签。
你能举例说明你的数据输出应该是什么样子吗? – viksit 2010-04-15 21:03:38
我的数据输出应该是一个标签列表,或者甚至更好的一个查询集。它们之间很容易转换,所以两者都适合我的情况。 – 2010-04-15 21:05:57