2010-08-07 1 views

답변

0

업데이트 : 조인 테이블에 별도의 모델을 사용하는 것이 더 나은 방법을 찾았습니다. 이 같은 관계를 고려

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')) 

원래 대답 :

는 내가 전에 비슷한 상황에 직면했다. 내 경우 모델은 UnitWeapon입니다. 그들은 많은 관계를 가졌습니다. 나는 무기의 인기를 셀 싶었다. 이것은 내가 그것에 대해 갔다하는 방법입니다

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()) 

난 당신이 PizzaTopping 위해 동일을 할 수 있다고 생각합니다. 나는 그것을하는 다른 (더 좋은) 방법이 있을지도 모른다라고 생각한다.