0

クエリ セット があります categories = unipart.categories.all()。これは、ユニパート オブジェクトがリンクされているすべてのカテゴリです。

ただし、このリストから最上位のカテゴリを削除したいと思います。ユニパートもリストされているサブカテゴリを持つもの。

または、parent_id が queryset 内の category_ids の 1 つと等しいカテゴリ。

たとえば、ユニパートが次の場所にリストされているとします: ナツメグ (親 = スパイス) およびスパイス (親 = 食品)

次に、ナツメグのみを含めたいと思います-基本的に、クエリセットからスパイスを「ポップ」したいと思います。

これを行う最善の方法は何ですか?リストは使いたくない。

ここに私のモデルがあります:

class UniPart (models.Model):
categories=models.ManyToManyField(Category, related_name = 'unipart')

class Category (MPTTModel):
    category = models.CharField(max_length=250)
    oc_id= models.IntegerField()
    parent = TreeForeignKey('self', blank=True, null=True, related_name='children')
    def __unicode__(self):
4

1 に答える 1

2

このユニパートアイテムにバインドされた子カテゴリを持つカテゴリを除外できます。

categories = unipart.categories.exclude(
                 categorieschild__unipart = unipart).distinct()

これcategorieschildは、カテゴリの子の関連する名前です。

于 2012-11-06T17:32:31.560 に答える