Модель django для получения конкретного HTML-вывода без излишеств в модели

У меня есть 3 модели (супервайзер, студенты и распределение) . Я создаю систему распределения, в которой несколько студентов могут быть распределены к одному руководителю. Теперь я хочу, чтобы моя модель могла выдавать следующий результат

Пример того, как я хочу вывести результат

Вот структура моей модели

class StudentProfile(models.Model):

stud_id = models.UUIDField(default=uuid.uuid4, primary_key=True, unique=True)
user_id = models.OneToOneField(User,blank=True, null=True, on_delete=models.CASCADE)
programme_id = models.ForeignKey(Programme, on_delete=models.CASCADE)
session_id = models.ForeignKey(Sessi`**enter code here**`on, on_delete=models.CASCADE)
type_id = models.ForeignKey(StudentType, on_delete=models.CASCADE)
dept_id = models.ForeignKey(Department, on_delete=models.CASCADE)

class SupervisorProfile(models.Model):

super_id = models.UUIDField(default=uuid.uuid4, primary_key=True, unique=True)
user_id = models.ForeignKey(User, on_delete=models.CASCADE)
dept_id = models.ForeignKey(Department, on_delete=models.CASCADE)

class Allocate(models.Model):

allocate_id = models.UUIDField(default=uuid.uuid4, primary_key=True, unique=True)
stud_id = models.ForeignKey(StudentProfile, on_delete=models.CASCADE)
super_id = models.ForeignKey(SupervisorProfile, on_delete=models.CASCADE)

Теперь я сосредоточился на модели Allocate, где происходит распределение, и там много избыточности Любые предложения о том, как улучшить мою модель, чтобы убрать избыточность в получении ожидаемого HTML результата, были бы признательны 🙏

Насколько я понимаю, вам нужно назначить нескольких студентов одному руководителю. Для этого достаточно использовать ForeignKey в классе StudentProfile. Как показано ниже: supervisor=models.ForeignKey(Supervisor,on_delete=models.DO_NOTHING) Но если вам нужно связать студента с несколькими супервизорами, вам следует использовать ManyToManyField ManyToManyField автоматически создает третью таблицу типа class Allocate себя. Для получения дополнительной информации обратитесь к hire. Также можно сократить избыточность, учитывая отдел. Однако Не похоже, что меньше избыточности можно найти в sql базе данных. Надеюсь, это было полезно

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