我有一个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)
答案 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更改为指向新修订版。