【发布时间】:2012-09-10 09:04:17
【问题描述】:
我正在为 Django 开发一个问卷类型的应用程序。 当参与者完成问卷调查时,将创建一个 AnswerSet 对象,该对象将他们的用户对象链接到 QuestionAnswer 对象列表,每个问题对应一个他们回答的问题。
class AnswerSet(models.Model):
user=models.ForeignKey(User)
questionnaire=models.ForeignKey(Questionnaire)
class QuestionAnswer(models.Model):
question = models.ForeignKey(Question)
answer = models.CharField(max_length=255)
answer_set = models.ForeignKey(AnswerSet)
该应用允许人们重新回答问卷,在这种情况下,使用他们现有的答案呈现表单,对于更新的答案,会创建并保存一个新的 QuestionAnswer 对象。
因此我的问题是:
为了在参与者编辑调查问卷时显示最新的答案,我希望能够获得一个 AnswerSet,然后过滤 QuestionAnswers 以便我为每个问题获得一个 QuestionAnswer,其中有超过一个 QuestionAnswer 任何问题,我只想看到最近的一个
【问题讨论】:
-
你的表中是否有插入时间作为列?
-
您还想存储以前的答案吗?如果没有,那么当您为
QuestionAnswer创建模型表单时,请使用现有实例,以便在您保存表单时更新该实例。 -
不,我没有插入时间,但可以轻松添加,我正在考虑使用主键来确定最近的答案。 @Rohan 是的,我想保留答案的审计线索。
-
@Ctrlspc 好的,然后很容易通过
latest(your_datetime_field)过滤。靠PK来测序不好。 -
我怀疑您可能需要更改模型,这个问题可能会有所帮助stackoverflow.com/questions/3483307/…
标签: python django django-models