2011-08-22 90 views
1

我有型号:如何从模型和他的所有孩子获取数据?

class Article(models.Model): 
    ... 

class Category(models.Model): 
    ... 
    parent = models.ForeignKey(Category, etc.) 
    ... 

我想检索类别中的所有物品,也包括儿童类你死我活。

例:

Cat_1 
\-Cat_2 
    \-Cat_3 
    \-Cat_4 (article_1) 
    \-Cat3a (article_2) 

如何建立Cat_1查询,以获得article_1和article_2?

+0

如果您不介意增加一些复杂性以换取更快更简单的查找,这可能有所帮助:http://stackoverflow.com/questions/2061092/django-category-and-subcategory-searches/2066742#2066742 –

+1

我会建议查看django-mpt或django-treebeard来帮助建立分层数据的模型。 –

回答

1

思路是:

def retrieve(category = None): 
    if(category) 
    _cat = category 
    else: 
    _cat = Category.objects.get(...) 

    if(_cat.parent): 
    return retrieve(_cat.parent) 

    return _cat 

我希望这可以帮助。

相关问题