1
피자 (pizza) 모델과 토핑 (topping) 모델이 있는데 둘 사이에는 다 대다 관계가 있습니다. Django ORM을 사용하여 다 대다 관계의 빈도와 상관 관계를 수식하는 우아한 방법은 무엇입니까?
- 인기 (주파수)
당신은 추출하는 우아한 방법을 추천 할 수
감사합니다.
피자 (pizza) 모델과 토핑 (topping) 모델이 있는데 둘 사이에는 다 대다 관계가 있습니다. Django ORM을 사용하여 다 대다 관계의 빈도와 상관 관계를 수식하는 우아한 방법은 무엇입니까?
당신은 추출하는 우아한 방법을 추천 할 수
감사합니다.
업데이트 : 조인 테이블에 별도의 모델을 사용하는 것이 더 나은 방법을 찾았습니다. 이 같은 관계를 고려
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
위해 동일을 할 수 있다고 생각합니다. 나는 그것을하는 다른 (더 좋은) 방법이 있을지도 모른다라고 생각한다.