Django | Queryset ManyToMany Отношения через экземпляр

Я хотел бы отобразить различные даты для каждого курса. Курс также может иметь несколько дат. К сожалению, я не могу найти решение.

Модели:

class Course(models.Model):
    course_number = models.CharField(max_length=24, blank=True)
    course_location = models.ForeignKey(Course_location, on_delete=models.CASCADE)
    course_dates = models.ManyToManyField('Course_dates', through="Course_Course_dates")

    def __str__(self):
        return self.course_number

class Course_Course_dates(models.Model):
    course = models.ForeignKey(Course, on_delete=models.CASCADE)
    course_dates = models.ForeignKey(Course_dates, on_delete=models.CASCADE)

    def __str__(self):
        return self.id

class Course_dates(models.Model):
    date = models.DateField()
    start = models.TimeField()
    end = models.TimeField()
    trainer = models.ManyToManyField('Trainer', through="Course_dates_trainer")

    def __str__(self):
        return self.date.strftime("%d.%m.%Y")

Вид:

def course_list(request):
    courses = Course.objects.all()
    course_list = []

    for course in courses:
        course_location = course.course_location.description
        dates = course.course_dates.all()
        
        course_list.append({'course': course, 'course_location': course_location, 'dates': dates,})
    
    context = { 'course_list': course_list, }
    return render(request, 'kursverwaltung_tenant/course.html', context)

Спасибо за помощь!!!

Ваш набор запросов курсов уже имеет доступ к датам курсов через внешний ключ, поэтому вам не нужно запускать второй набор запросов дат в представлении, чтобы получить к ним доступ.

Когда вы перебираете курсы, вам нужно выполнить второй цикл по датам этих курсов в вашем шаблоне. Вот пример этого: Отображение значения внешнего ключа в шаблоне django

Вернуться на верх