2017-10-06 7 views
0

私はDjangoのカテゴリモデルにMPTTを使用していますが、childがない場合カテゴリをフィルタリングする方法があるかどうかは疑問でした。Django MPTTフィルタは子供がいない場合のみ

models.py:DB内

class Category(MPTTModel, TimeStampedModel): 
    title = models.CharField(max_length=75) 
    parent = TreeForeignKey('self', null=True, blank=True, on_delete=models.SET_NULL, related_name='children', db_index=True) 

カテゴリー例:

Games > Nintendo > Nintendo 64 
Games > Microsoft > Xbox One 

私はこのようなコマンドを実行できるようにしたい:それはだろうと期待して

Category.objects.all().has_no_children() 

返信[Nintendo 64, Xbox One]

答えて

2

あなたはleavesと呼ばれるものを取得しようとしています。これはあなたを助けるはずです:

Category.objects.filter(lft=F('rght')-1) 
+0

完璧に、ありがとう! – Hybrid

関連する問題