0
我想提出一個實體 - 審查 - 投票樣的系統,其中每個單位都會有一些評論,並且每次審查都會有一些票(上/下)減少查詢集的數量Django項目
class Entity(models.Model):
name = models.CharField()
...
class Review(models.Model):
author = models.ForeignKey(user)
entity = models.ForeignKey(Entity)
....
class Vote(models.Model):
vote_user = models.ForeignKey(user)
vote_review = models.ForeignKey(Review)
vote_value = models.BooleanField() # True = Up
對於每個實體,我希望有一個評論列表,每個評論都有多個upvotes和downvotes註釋。
到目前爲止,我的做法是運行每個評論2個額外的查詢:
count_up = Vote.objects.filter(vote_review__id = X, vote_value = True)
count_down = Vote.objects.filter(vote_review__id = X, vote_value = False)
這將返回正確的結果。但是,查詢的數量似乎相當低效。
我可以知道是否有更好的方法來構建查詢?或者如何改變模式以更好地支持這種操作?
感謝
你需要整個投票對象還是隻需要計數? – Sayse
只需要計數 – nkt
您可以顯示剩餘的視圖嗎?這些查詢是否在所有評論的循環中完成?如果是這樣,你可以使用註釋。 –