Mam modeli w Django, które są mniej więcej tak:Zapytanie o ManytoMany Pole z Through w Django
class Classification(models.Model):
name = models.CharField(choices=class_choices)
...
class Activity(models.Model):
name = models.CharField(max_length=300)
fee = models.ManyToManyField(Classification, through='Fee')
...
class Fee(models.Model):
activity = models.ForeignKey(Activity)
class = models.ForeignKey(Classification)
early_fee = models.IntegerField(decimal_places=2, max_digits=10)
regular_fee = models.IntegerField(decimal_places=2, max_digits=10)
Pomysł jest, że nie będzie to zestaw opłat związanych z każdej pary aktywny i klasyfikacji. Klasyfikacja jest jak student, pracownik, itp.
Wiem, że część działa poprawnie.
Wtedy w mojej aplikacji kwerendy dla zestawu działań z:
activities = Activity.objects.filter(...)
która zwraca listę działań. Muszę wyświetlić w moim szablonie listę działań wraz z ich opłatami. Coś takiego:
Activity Name
Student Early Price - $4
Student Regular Price - $5
Staff Early Price - $6
Staff Regular Price - $8
Ale nie wiem, w prosty sposób, aby uzyskać te informacje bez konkretnego zapytania get opłat obiektów dla każdej pary aktywność/klasy.
miałem nadzieję to będzie działać:
activity.fee.all()
Ale to właśnie zwraca obiekt klasyfikacji. Czy istnieje sposób, aby uzyskać dane obiektu opłaty dla pary za pośrednictwem już zadanych pytań?
Czy robię to zupełnie źle?