Django - создание разделов для курса

Я создаю сайт с логикой Курс - Раздел - Урок. Я могу снимать разделы курса, но не могу снимать уроки этих разделов. Где я делаю неправильно?

Models.py

class CourseCategoryModel(models.Model):
    name = models.CharField(max_length=200, verbose_name="Category Name")
    slug = models.SlugField(unique=True)

class CourseModel(models.Model):
    name = models.CharField(max_length=200, verbose_name="Course Name")
    category = models.ForeignKey(CourseCategoryModel, null=True, blank=True, on_delete=models.PROTECT, verbose_name="Course Category")

class CourseLessonSectionModel(models.Model):
    name = models.CharField(max_length=200, verbose_name="Section Name")
    order = models.IntegerField(max_length=3, verbose_name="Section Order")
    course = models.ForeignKey(CourseModel, null=True, blank=True, on_delete=models.PROTECT, verbose_name="Course")

class CourseLessons(models.Model):
    course = models.ForeignKey(CourseModel, null=True, blank=True, on_delete=models.CASCADE, verbose_name="Course")
    section = models.ForeignKey(CourseLessonSectionModel, null=True, blank=True, on_delete=models.CASCADE, verbose_name="Lesson Section")
    name = models.CharField(max_length=200, verbose_name="Lesson Name")
    order = models.IntegerField(max_length=3 , verbose_name="Lesson Order", default=0)

View.py

def detail(request, slug):
    course = CourseModel.objects.get(slug=slug)

    courseSection = CourseLessonSectionModel.objects.all().filter(kurs__slug=slug)

    courseLessons = CourseLessons.objects.all().filter("what should i write here?")

    return render(request, "coursedetail.html", context={
        "course": course,
        "courseLessons" : courseLessons,
        "courseSection" : courseSection
    })

Вы создали отношение ManyToOne, которое является ForeignKey для всего.

Вы хотите получить урок раздела. Я предполагаю, что вы уже правильно извлекли курс и раздел курса.

Вы можете __in искать для фильтрации по идентификаторам всех секций с определенным курсом, так:

from django.db import Q

def detail(request, slug):
    course = CourseModel.objects.get(slug=slug)

    courseSection = CourseLessonSectionModel.objects.all().filter(kurs__slug=slug)
    course_section_list=list(courseSection)

    courseLessons = CourseLessons.objects.filter(Q(course=course) & Q(section__in=[i.id for i in course_section_list]))

    return render(request, "coursedetail.html", context={
        "course": course,
        "courseLessons" : courseLessons,
        "courseSection" : courseSection
    })
Вернуться на верх