Tengo un modelos de Django que son algo así:de consulta para un campo ManyToMany con A través de 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)
La idea es que habrá un conjunto de tarifas asociadas a cada par de actividad y clasificación. La clasificación es como Estudiante, Personal, etc.
Sé que la pieza funciona bien.
Luego, en mi solicitud, consulta para un conjunto de actividades con:
activities = Activity.objects.filter(...)
que devuelve una lista de actividades. Necesito mostrar en mi plantilla esa lista de actividades con sus tarifas. Algo como esto:
Activity Name
Student Early Price - $4
Student Regular Price - $5
Staff Early Price - $6
Staff Regular Price - $8
Pero no sé de una manera fácil de obtener esta información sin una consulta ser específico de las tasas objeto para cada par de actividad/clase.
yo esperaba que esto funcionaría:
activity.fee.all()
Pero eso sólo devuelve el objeto de clasificación. ¿Hay alguna manera de obtener los Datos de Objeto de Cuota para el Par a través de las Actividades que ya he consultado?
¿O estoy haciendo esto completamente mal?