4

manytoanyfield を持つオブジェクトのグループから個別の値を数えようとしています

例えば

object article has manytoanyfield of tag objects


1 つの記事にタグ「tag1」「tag2」が含まれています

別の記事には「tag2」「tag3」というタグがあります


次の行に沿って何かを返すものを見つけたいと思います:

"tag1": 1 "tag2": 2 "tag3": 1

Articles.objects.all().values('tags') などで何かできると思ったのですが、空になりました。

4

2 に答える 2

8

models.py

class Topping(models.Model):
        name = models.CharField(max_length = 20)

class Pizza(models.Model):
        name = models.CharField(max_length = 20)
        toppings = models.ManyToManyField(Topping)

python manage.py シェル

>>> from many_to_many.models import Pizza, Topping
>>> t1 = Topping(name = "T1")
>>> t2 = Topping(name = "T2")
>>> t3 = Topping(name = "T3")
>>> t4 = Topping(name = "T4")
>>> p1 = Pizza(name="P1")
>>> p2 = Pizza(name="P2")


>>> p1.toppings.add(t1)
>>> p1.toppings.add(t2)
>>> p2.toppings.add(t2)
>>> p2.toppings.add(t3)


>>> t2.pizza_set.count() 
    2
>>> t1.pizza_set.count() 
    1
于 2010-12-27T11:15:26.833 に答える
3

あなたの質問は関連しています: How to count and display objects in relationship ManyToMany in Django

models.py

class Topping(models.Model):
        name = models.CharField(max_length = 20)

class Pizza(models.Model):
        name = models.CharField(max_length = 20)
        toppings = models.ManyToManyField(Topping)

python manage.py シェル

>>> for topping in Topping.objects.all():
...     print topping.name, topping.pizza_set.count()
于 2013-08-29T15:53:07.617 に答える