0
我已经完成了一个概念证明django项目,现在想要重新设计模型以使其更健壮。django:有多个外键查询的模型
的基本模型被称为PhraseRequest
:
class PhraseRequest(models.Model):
user = models.ForeignKey(User)
timestamp = models.DateTimeField()
phrase = models.TextField()
现在并发症进来一个PhraseRequest
有一堆关联模型,PhraseRequestVote
,Phrase
(应答),PhraseRequestComment
&的C。
现在,当我列出排名前十的短语请求时,我的模板有一个for-each循环,它提供了十个PhraseRequest对象。然后用请求填充HTML,并将所有相关数据填充到HTML中。
到目前为止,我已经加入到每PhraseRequest
的字典来实现这一目标:
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
直观地看,这似乎并不正确 - 必须有一个‘正确’的方式来做到这一点。我是否需要重新设计模型?查询?
啊,是的!我甚至可以把这个财产权利?通过重写'getattr' – jsj 2013-02-10 07:54:40
是,祝你好运,并有你的实验 – catherine 2013-02-10 08:00:13