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)
но он позволяет мне только изменять/добавлять вопросы теста.
что нужно изменить/добавить, чтобы иметь возможность управлять всем тестом, включая систему управления ответами, с одной страницы?
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 это может быть то, что вы ищете.
