Как получить только определенные файлы в django?
У меня есть две модели Model Faculty & Model Courses
.
Концепция следующая, когда создается новый курс, пользователю необходимо выбрать соответствующий факультет. На данный момент нет никакой связи между факультетом и курсом, я просто использую факультет как ModelChoiceField для отображения доступных выпадающих полей и сохранения курса!
Проблема в том, что мне нужно показать доступные курсы по факультетам, как показано ниже:
Вышеупомянутое может быть достигнуто с помощью отношений, как я полагаю, мой вопрос в том, что когда я показываю курсы по факультетам, мне нужно получить все курсы и их содержание вместе с факультетом и показать только название курса и название факультета!
Но чтобы показать только курс и имя преподавателя, я получаю все детали курса, что является пустой тратой времени! Как решить эту проблему?
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 %}