Как получить только определенные файлы в django?

У меня есть две модели Model Faculty & Model Courses.

Концепция следующая, когда создается новый курс, пользователю необходимо выбрать соответствующий факультет. На данный момент нет никакой связи между факультетом и курсом, я просто использую факультет как ModelChoiceField для отображения доступных выпадающих полей и сохранения курса!

Проблема в том, что мне нужно показать доступные курсы по факультетам, как показано ниже:

enter image description here

Вышеупомянутое может быть достигнуто с помощью отношений, как я полагаю, мой вопрос в том, что когда я показываю курсы по факультетам, мне нужно получить все курсы и их содержание вместе с факультетом и показать только название курса и название факультета!

Но чтобы показать только курс и имя преподавателя, я получаю все детали курса, что является пустой тратой времени! Как решить эту проблему?

Option1:
One to Many relation between faculty and course and then store all the course name in faculty 
(so that i can directly show only course name )

& 

Option2: 
One to One relation with Course and Faculty,. Now Fetch all the course contents and show both faculty and course name alone ( this will have plenty of waste data as it has tons of information )

Есть ли здесь что-нибудь эффективное?

Если я правильно вас понял, у вас стандартное отношение "один ко многим". Обычно лучший способ справиться с этим - простой внешний ключ.

class Faculty(models.Model):
    name = models.CharField(...)
    ...

class Course(models.Model):
    faculty = models.ForeignKey(Faculty, on_delete=models.CASCADE, related_name='courses')
    name = models.CharField(...)
    ...

Затем вы можете получить доступ к курсам для каждого факультета в шаблоне следующим образом (предполагается, что вы передаете шаблону контекст faculties, а faculties является набором запросов модели Faculty):

{% for faculty in faculties %}
    {{ faculty.name }}
    {% for course in faculty.courses.all %}
        {{ course.name }}
        ...
    {% endfor %}
{% endfor %}
Вернуться на верх