簡體   English   中英

Django通過關系統計外鍵

[英]Django count foreign key through relation

我正在構建一個簡單的論壇應用程序,我需要一些幫助,通過關系計算外鍵對象。

假設我的模型看起來像這樣:

class Forum(models.Model):
    title = models.CharField(max_length=255)
    description = models.TextField()
    slug = models.SlugField(unique=True, blank=True)

class Thread(models.Model):
    title = models.CharField(max_length=255)
    forum = models.ForeignKey(to=Forum, related_name='threads')
    slug = models.SlugField(unique=True, blank=True)

class Post(models.Model):
    body = models.TextField()
    author = models.ForeignKey(User)
    thread = models.ForeignKey(to=Thread,related_name='posts')

現在我們創建forum對象。

forum = Forum.objects.get(slug=forum)

我們可以像這樣計算論壇里面的線程數: forum.threads.count()

我的問題是,如何計算論壇中的所有帖子?

我嘗試過像all_posts = forum.thredas.posts.count()這樣的東西,但正如預期的那樣它沒有用。

謝謝!

通常在Django中,一個很好的原則是,當你想對模型做某事時,你應該從該模型開始查詢。 所以,既然你需要計算帖子,你應該從Post模型開始。

從那里,您可以使用雙下划線語法過濾到您想要的特定論壇。

forum_posts = Post.objects.filter(thread__forum=my_forum)
forum_post_count = forum_posts.count()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM