概念実証の django プロジェクトを終了し、モデルをより堅牢になるように再設計したいと考えています。
基本モデルは a と呼ばれますPhraseRequest
。
class PhraseRequest(models.Model):
user = models.ForeignKey(User)
timestamp = models.DateTimeField()
phrase = models.TextField()
ここで、(応答) などPhraseRequest
の一連の関連付けられたモデルがあるという複雑な問題が発生します。PhraseRequestVote
Phrase
PhraseRequestComment
ここで、上位 10 個のフレーズ リクエストを投票順にリストすると、テンプレートには 10 個の PhraseRequest オブジェクトが供給される for-each ループがあります。次に、HTML にリクエストとそれに関連するすべてのデータを入力します。
PhraseRequest
これまでのところ、これを達成するために each の辞書に追加してきました:
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
直感的には、これは正しくないように思えます。これを行うには「正しい」方法があるはずです。モデルを再設計する必要がありますか? クエリ?