我有兩個模型是這樣的(簡化):選擇過濾相關對象
class Post(models.Model):
content = models.TextField('content')
#...
class Vote(models.Model):
user = ForeignKey(User)
status = models.TextField(choices = some_choices, default = 'likes')
post = models.ForeignKey(Post)
#...
什麼我想要做的是選擇(使用一個查詢),使用一些過濾器與一個特定的帖子(讓我們說當前)用戶對這個帖子的投票(沒關係,如果他沒有投票),所以我可以輸出所有帖子,用戶可以看到他喜歡哪些,哪些他不喜歡,哪些不喜歡,完全沒有投票權。
select_related
Vote
Vote
模型在這裏沒有幫助,因爲相關的對象不能過濾,所以我想我應該做一些額外的事情,但我不知道應該通過什麼參數。
所以我想,應該是這樣的:
Post.objects.filter(content__contains="test").extra(tables="app_vote", where={'my_vote_status': 'something here perhaps?'})
能否請你幫我瞭解如何使這樣的查詢?
UPD: schacki提供了一個很好的解決方案,唯一的問題是,我想從模板訪問由不同的用戶投票,somtehing像Post.vote_by_me
和Post.vote_by_this_user
或Post.vote_by_top_user
你是如何關聯'Post'和'Vote'?你正在從你的例子 – Claudiu
oops中留下一些重要的東西,你是對的。謝謝你指出,我已經增加了與問題的關係。 – DataGreed