Django Использование TabularInline в панели администратора

Я создаю приложение на django. В нем есть несколько тестов с несколькими вопросами в каждом. у каждого вопроса есть ответ.

models.py

class Test(models.Model):
    name = models.CharField(max_length=200)
    author = models.ForeignKey(User, on_delete=models.CASCADE, default=None, null=True, blank=True)
    date_posted = models.DateTimeField(auto_now_add = True)

    def get_questions(self):
        return self.question_set.all()

    def __str__(self):
        return self.name

class Question(models.Model):

    text = models.CharField(max_length=200, null=True)
    test = models.ForeignKey(Test, on_delete=models.CASCADE)
    created = models.DateTimeField(auto_now_add = True)


    def get_answer(self):
        return self.answer_set.all()

    def __str__(self):
        return self.text

class Answer(models.Model):
    text = models.CharField(max_length=200)
    question = models.ForeignKey(Question, on_delete=models.CASCADE, related_name='parent')
    def __str__(self):
         return self.text

Я хотел бы иметь возможность управлять всем тестом (создавать/изменять вопросы и ответы) из одного "вида" администратора django.

Я пытался сделать вот так:

admin.py

class QuestionInline(admin.TabularInline):
    model = Question


class TestAdmin(admin.ModelAdmin):
    inlines = [
        QuestionInline,
    ]

admin.site.register(Test, TestAdmin)

но он позволяет мне только изменять/добавлять вопросы теста.

enter image description here

что нужно изменить/добавить, чтобы иметь возможность управлять всем тестом, включая систему управления ответами, с одной страницы?

ofc Я могу сделать это, сделав другую страницу администратора:


class AnswerInline(admin.TabularInline):
    model = Answer


class QuestionAdmin(admin.ModelAdmin):
    inlines = [
        AnswerInline,
    ]

admin.site.register(Question, QuestionAdmin)

Но я хотел бы сделать это только с одной страницы

Checkout https://github.com/theatlantic/django-nested-admin это может быть то, что вы ищете.

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