Доступ к запросу внешнего ключа
У меня следующая модель:
class Exercise(models.Model):
name = models.CharField(max_length = 30, blank=True, null=True)
class Breakdown(models.Model):
exercise = models.ForeignKey(Exercise, on_delete=models.CASCADE, related_name='breakdowns',blank=True, null=True)
Мой вопрос В представлениях как я могу зациклить разбиение на части внутри упражнения.
Вот что я пробовал:
class page_details(DetailView):
model = Workout
template_name = 'app/page.html'
context_object_name = 'workout'
def get_context_data(self, **kwargs):
exercises = Exercise.objects.filter(workout_id=self.object)
for e in exercises.Breakdown:
print(e)
Я продолжаю получать AttributeError: 'QuerySet' object has no attribute 'Breakdown'
Мой вопрос, как я могу получить доступ к этим данным.
Если вы хотите выполнять итерации над значениями вторичной модели поверх выбранных значений первичной модели. В первичной модели по умолчанию создается специальное свойство (объект) с именем secondary model_set. В вашем случае, например, (учитывая, что вы действительно получили упражнения):
exercises = Exercise.objects.filter(workout_id=self.object)
for e in exercises.breakdown_set.all():
print(e)