Создание модели в Django и встроенное редактирование связанных записей

Не получается вывести связанные записи в панели администратора Django. Помогите пожалуйста с models и выводом связанных записей в admin. (Преподаватель->Предметы->Вид занятия. К примеру: преподаватель1: русский язык (Лекция, Экзамен), Преподаватель2: математика(лекция, практическое занятие, экзамен), физика (лекция)

models:


class ClassA(models.Model):
    name = models.CharField()
 
class ClassB(models.Model):
    name = models.CharField()
    classA= models.ManyToManyField('ClassA')

class ClassC(models.Model):
    name = models.CharField()
    classA= models.ManyToManyField('ClassA')
    classB= models.ManyToManyField('ClassB')
    

пробовали ли вы использовать функцию def str(self) для каждой уже созданной модели? Примерно код будет выглядить вот так

class ClassA(models.Model):
    name = models.CharField()
    def __str__(self):
        return self.name

class ClassB(models.Model):
    name = models.CharField()
    classA= models.ManyToManyField('ClassA')
    def __str__(self):
        return '{}, ({})'.format(self.name, self.ClassA.all())

и так далее

Вам помогут InlineModelAdmin объекты - https://docs.djangoproject.com/en/4.0/ref/contrib/admin/#inlinemodeladmin-objects

Но в Django доступен только 1 уровень вложенности для админки. Для многоуровнего отображения придется использовать приложения вроде django_nested_admin - https://django-nested-admin.readthedocs.io/en/latest/quickstart.html

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