我怎样才能急切地加载答案最新版本?

时间:2011-07-03 16:34:09

标签: django django-models

我有一个Q& A网站,它允许在存储每个更改的修订版本时更改答案,就像在Stackoverflow上一样。在选择一些答案时,我希望将最新(但不是全部)修订包含在每个答案的属性中,以便我可以避免在我的页面上进行n + 1个查询。

class Answer(models.Model):
    user = models.ForeignKey(User)
    problem = models.ForeignKey(Problem)

class AnswerRevision(models.Model):
    answer = models.ForeignKey(Answer, related_name='revisions')
    text = models.TextField()
    timestamp = models.DateTimeField()


Answer.objects.filter(problem=p)

1 个答案:

答案 0 :(得分:0)

我建议采用以下结构:

class Answer(models.Model):
    user = models.ForeignKey(User)
    revision = models.ForeignKey(AnswerRevision)
    problem = models.ForeignKey(Problem)

class AnswerRevision(models.Model):
    answer = models.ForeignKey(Answer, related_name='revisions')
    text = models.TextField()
    timestamp = models.DateTimeField()

唯一的区别是我在答案中添加了revision属性。在进行新修订时,只需将FK更改为指向新修订版。