0
我用Django編寫一個查詢有很大的問題。我的模型(只是它的重要部分 - 關係)看起來像這樣:如何在Django中通過一對外鍵過濾查詢?
class User(models.Model):
name = models.CharField(unique=True)
class Topic(models.Model):
create_user = models.ForeignKey(User)
class Post(models.Model):
topic = models.ForeignKey(Topic)
user = models.ForeignKey(User)
它代表論壇應用程序的對象。我需要編寫查詢,返回最活躍評論員的用戶 - 他未創建主題的最高發布數。在SQL它應該是這樣的:
select user_id, count(*)
from forum_app_post post
inner join forum_app_topic topic on topic.id = post.topic_id
where post.user_id != topic.create_user_id
group by user_id;
對我來說最難的部分是通過過濾在Django「post.user_id = topic.create_user_id!」的帖子。當我嘗試在一個過濾器中使用兩個字段時出現異常,並且我無法使用Django找到任何類型的解決方法。我不想使用原始SQL(使用Cursor對象)。
非常感謝!
看起來它工作得很好,已經測試過它。謝謝! – user1953618