从manytomanyfield计算值

Dan*_*Man 2 django manytomanyfield

我试图从一组具有manytomanyfield的对象中计算不同的值

例如

对象文章有许多标记对象的字段


一篇文章有​​标签"tag1""tag2"

另一篇文章有​​标签"tag2""tag3"


我想找出一些可以返回以下内容的东西:

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

我以为我可以用articles.objects.all().values('tags')或者其他东西做些什么但是我空了.

May*_*esh 6

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)
Run Code Online (Sandbox Code Playgroud)

python manage.py shell

>>> 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
Run Code Online (Sandbox Code Playgroud)