我正在尝试从一组具有多字段的对象中计算不同的值
例如
对象文章有许多标签对象字段
一篇文章有标签“tag1”“tag2”
另一篇文章有标签“tag2”“tag3”
我想弄清楚一些会返回以下内容的东西:
“标签 1”:1 “标签 2”:2 “标签 3”:1
我以为我可以用articles.objects.all().values('tags') 或其他东西做点什么,但我空了。
我正在尝试从一组具有多字段的对象中计算不同的值
例如
对象文章有许多标签对象字段
一篇文章有标签“tag1”“tag2”
另一篇文章有标签“tag2”“tag3”
我想弄清楚一些会返回以下内容的东西:
“标签 1”:1 “标签 2”:2 “标签 3”:1
我以为我可以用articles.objects.all().values('tags') 或其他东西做点什么,但我空了。
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
你的问题是相关的:How to count and display objects in related ManyToMany in Django
class Topping(models.Model):
name = models.CharField(max_length = 20)
class Pizza(models.Model):
name = models.CharField(max_length = 20)
toppings = models.ManyToManyField(Topping)
>>> for topping in Topping.objects.all():
... print topping.name, topping.pizza_set.count()