我有一个必胜客模式和一个Topping模式,两者之间有着多到多的关系。
你能推荐一种优雅的提取方法吗?
谢谢
发布于 2010-08-08 05:36:10
更新:为join表找到一种更好的使用单独模型的方法。考虑一下这样的关系:
class Weapon(models.Model):
name = models.CharField(...)
class Unit(models.Model):
weapons = models.ManyToManyField(Weapon, through = 'Units_Weapons')
class Units_Weapons(models.Model):
unit = models.ForeignKey(Unit)
weapon = models.ForeignKey(Weapon)现在你可以这样做了:
from django.db.models import Count
Units_Weapons.objects.values('weapon').annotate(Count('unit'))原始答案
我以前也遇到过类似的情况。在我的例子中,模型是Unit和Weapon。他们有很多种关系。我想数数武器的受欢迎程度。我就是这样做的:
class Weapon(models.Model):
name = models.CharField(...)
class Unit(models.Model):
weapons = models.ManyToManyField(Weapon)
for weapon in Weapon.objects.all():
print "%s: %s" % (weapon.name, weapon.unit_set.count())我认为你也可以为Pizza和Topping做同样的事情。我怀疑可能有其他(更好的)方法来做这件事。
https://stackoverflow.com/questions/3432184
复制相似问题