我已经完成了一个概念验证 django 项目,现在想重新设计模型以使其更加健壮。
基本模型称为 a PhraseRequest
:
class PhraseRequest(models.Model):
user = models.ForeignKey(User)
timestamp = models.DateTimeField()
phrase = models.TextField()
现在复杂之处在于一个PhraseRequest
有一堆关联的模型,,PhraseRequestVote
(Phrase
响应),PhraseRequestComment
&c。
现在,当我列出按投票顺序排列的前十个 Phrase Request 时,我的模板有一个 for-each 循环,该循环提供十个 PhraseRequest 对象。然后它用请求填充 HTML,以及它的所有关联数据。
到目前为止,我一直在添加 eachPhraseRequest
的字典来实现这一点:
for r in phrase_requests:
r.votes = PhraseRequestVote.objects.filter(request=r)
r.n_votes = sum([v.weight for v in r.votes])
r.comments = PhraseRequestComment.objects.filter(request=r)
#and so on
直觉上,这似乎不对 - 必须有一个“正确”的方法来做到这一点。我需要重新设计模型吗?查询?