私はProduct
とTag
と数多くの関係を持っており、自分のタグのセットと一致する商品を見つけたいと思っています。django manytomany order_byリレーションシップ数
class Product(models.Model):
def __str__(self):
return self.title
title = models.CharField(max_length=200)
price = models.IntegerField()
tags = models.ManyToManyField(Tag, related_name="products", blank=True)
class Tag(models.Model):
def __str__(self):
return self.name
name = models.CharField(max_length=50)
私はtag
秒のクエリセットを持っていると私はどちらかの製品で、私の製品を注文したい選択したタグのほとんどを持っていますか?
これを行うためのすてきなトリックはありますか?あるいは、私はすべての製品を照会してから自分でソートする必要がありますか?例えば
、私は3個のタグでクエリセットを持っている場合: STEM
、Programming
、K-6
と私は製品を持っている:
Computer Science Book (Programming),
Engineering Puzzle (K-6, STEM),
Cookie Cutters (K-6),
Rocket (STEM, K-6, Programming),
Backpack (K-6)
私はそれらの同じ項目が、この順にを返すようにしたいです:
Rocket (STEM, K-6, Programming),
Engineering Puzzle (K-6, STEM),
Computer Science Book (Programming),
Cookie Cutters (K-6),
Backpack (K-6)