Вы хотите иметь одну страницу администратора для создания Grade
, Subject
и Lesson
объектов. Тем не менее, Django не поддерживает вложенные встроенные внешние ключи. Одни отношения, которые охватывают более одного уровня. У вас есть несколько вариантов.
Вы можете изменить модель Lesson
, чтобы она имела прямой FK на Grade
и Subject
примерно так:
class Lesson(models.Model):
subject = models.ForeignKey(Subject, on_delete=models.CASCADE,
related_name='lesson_subject')
grade = models.ForeignKey(Grade, on_delete=models.CASCADE,
related_name='lesson_grade')
def save(self, *args, **kwargs):
self.grade = self.grade.grade
super().save(*args, **kwargs)
Тогда Вы можете прикрепить LessonInline
к GradeAdmin
и получить некий вложенный вкладыш.
В качестве альтернативы, есть несколько сторонних Django приложений, которые разрешают вложенный вкладыш. Быстрый поиск в Github или DjangoPackages найдет тот, который соответствует вашим потребностям и вкусам.