我对测验和相关问题进行建模,如下所示:
# 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)
但是,每当我更改船问题部分中的问题时,汽车部分中的问题都会更新以匹配它,反之亦然
是否有任何方法可以在同一个管理页面上显示这些内容,但可以单独更改它们
问题在于你的内线。两个都使用相同的模型,这很好。但是,由于您只想显示某些
Question
,因此必须调整每个内联的QuerySet
,并添加适当的.filter()
(我在这里猜测,你是如何区分问题的类别的。)相关问题 更多 >
编程相关推荐