簡體   English   中英

Django一對多

[英]Django one-to many

我真的對django如何處理數據庫關系感到困惑。

最初,我有一個文章模型,其中包含用於article_views的簡單IntegerField,最近,我試圖擴展article_view的定義以包含它自己的字段,因此我為其創建了一個模型。 (IP,會話密鑰等。)

我對如何建立關系有點茫然,對我而言,在文章模型中包含一對多字段是最有意義的,因為文章可以有很多不同的視圖,但是視圖可以僅作為一篇文章的一部分。

我看到的所有實現都以一種非常奇怪的反向方式進行了設置,這有什么用呢?

不幸的是,Django沒有一對多字段。 這是通過在本例中的ArticleView模型上創建一個ForeignKey來實現的。 當你想輕松訪問您的模板的制品的觀點,你可以設置related_nameForeignKey

class Article(models.Model):
    # Article definition

class ArticleView(models.Model):
    article = models.ForeignKey(Article, related_name='views')

現在,您可以在模板中使用article.views.count()來獲取與一個帳戶article.views.count()的視圖數。

請注意,這將為您想要的每個計數創建一個數據庫查詢。 帶有帶注釋的查詢集可能會更好: Article.objects.annotate(num_views=Count('views'))

暫無
暫無

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

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