我正在構建一個有問題的簡單應用程序。每個問題都會有一個二元投票(是/否)。我想記錄每個用戶的投票,所以每個用戶每個問題只能得到一個投票(類似於堆棧溢出或reddit)。從模型保存方法操作另一個模型的數據
我在這個問題上有一個vote_no和votes_yes int字段。每次添加投票時,這些都需要在交易中更新。我可以從Vote模型的保存方法中做到這一點嗎?
class Question(models.Model):
part_isit = models.CharField(max_length=45)
part_if = models.CharField(max_length=90)
votes_no = models.IntegerField()
votes_yes = models.IntegerField()
author = models.ForeignKey(User)
create_date = models.DateField(auto_now_add=True)
VOTE_CHOICES = (
('Y', 'Yes'),
('N', 'No'),
)
class Vote(models.Model):
choice = models.CharField(max_length=1, choices=VOTE_CHOICES)
question = models.ForeignKey(Question)
author = models.ForeignKey(User)
create_date = models.DateField(auto_now_add=True)
def save(self):
# increment the questions vote totals
#save the vote
super(Vote, self).save();
它的工作原理,謝謝。我唯一不喜歡的是可擴展性。它將檢索所有投票對象作爲列表。我寧願讓ORM做聚合查詢。 BTW有一個錯字(選擇應該是選擇)。 – Keyo 2010-12-18 07:53:27
我的錯誤,就是如何在ORM中完成計數查詢。 – Keyo 2010-12-18 08:10:04