У меня есть модели в Джанго, которые выглядят примерно так:
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)
Идея заключается в том, что с каждой парой деятельности и классификации будет установлен набор сборов. Классификация: студент, персонал и т. Д.
Я знаю, что эта часть работает правильно.
Затем в моем приложении я запрашиваю набор действий с:
activities = Activity.objects.filter(...)
, который возвращает список действий. Мне нужно отобразить в моем шаблоне список видов деятельности с их тарифами. Примерно так:
Activity Name
Student Early Price - $4
Student Regular Price - $5
Staff Early Price - $6
Staff Regular Price - $8
Но я не знаю простого способа получить эту информацию без специального запроса get объекта Fees для каждой пары вид деятельности / класс.
Я надеялся, что это сработает:
activity.fee.all()
Но это просто возвращает объект классификации. Есть ли способ получить данные об объекте комиссии для пары через действия, которые я уже запросил?
Или я делаю это совершенно неправильно?