我对测验和相关问题建模如下:
# models
class Question(models.Model):
title = models.TextField()
category = models.TextField()
class Quiz(models.Model):
questions = models.ManyToManyField(Question, through='OrderedQuestion')
class OrderedQuestion(models.Model):
# A through table to allow ordering of questions
question = models.ForeignKey(Question, ...)
quiz = models.ForeignKey(Quiz, ...)
order = models.PositiveIntegerField(default=0)
我有两种由代理模型处理的问题:
# proxy models to handle specific question categories
class BoatQuestion(Question):
objects = BoatQuestionManager() # handles setting category
class Meta:
proxy = True
和CarQuestion
的相似名称。
我希望能够彼此独立但在同一管理页面上编辑BoatQuestions
和CarQuestions
。管理员设置为:
class BoatQuestionInline(admin.TabularInline):
model = BoatQuestion.quiz.through
class CarQuestionInline(admin.TabularInline):
model = CarQuestion.quiz.through
class QuizAdmin(admin.ModelAdmin):
model = Quiz
inlines = (BoatQuestionInline, CarQuestionInline)
但是只要我更改了“船用问题”部分中的问题,“汽车”部分中的问题就会更新以匹配它,反之亦然。
有什么办法可以在同一管理页面上显示这些信息,但可以独立更改吗?
答案 0 :(得分:1)
问题出在你的内联上。两者都使用相同的模型,这很好。但是,由于只想显示某些target
,因此必须为每个内联调整Question
,并添加适当的QuerySet
。 (我想在这里,您如何区分问题的类别。)
.filter()