0
我正試圖編寫一個簡單的Django應用程序,用戶可以發佈文章,其他用戶可以訂閱文章。我處理了大部分數據庫關係,但是我正在努力的是針對主題類型,這是一個多選表單字段。用戶訂閱的數據庫模型
我有一個「主題」表與各種主題類型,創建文章時,您可以選擇多個主題文章相關,但我只希望有1條目在「文章」表中。我將如何建模,這樣當我創建一篇文章時,它只是一個條目,但我仍然可以將其與作者可能選擇的多個主題相關聯?
我正試圖編寫一個簡單的Django應用程序,用戶可以發佈文章,其他用戶可以訂閱文章。我處理了大部分數據庫關係,但是我正在努力的是針對主題類型,這是一個多選表單字段。用戶訂閱的數據庫模型
我有一個「主題」表與各種主題類型,創建文章時,您可以選擇多個主題文章相關,但我只希望有1條目在「文章」表中。我將如何建模,這樣當我創建一篇文章時,它只是一個條目,但我仍然可以將其與作者可能選擇的多個主題相關聯?
您正在尋找ManyToManyField,這是Django創建N-N表格的方式。
class Topic(models.Model):
name = ...
class Article(models.Model):
content = ...
topics = models.ManyToManyField(Topic)
在後臺,Django會創建一個新錶鏈接主題和文章,因爲你不能有一個N-N表中的SQL。
謝謝。它沒有在文章表中添加額外的列。它是否應該用關鍵文章的主鍵? – user3184033
不,你不應該有任何SQL的列表。正如我寫的,在後臺,它會創建一個你不會看到管理N-N關係的新表。這只是一個鏈接表。您可以閱讀此[SO帖子](http://stackoverflow.com/questions/183742/how-do-you-deal-with-m-n-relationships-in-a-relational-database)以獲取更多信息。 – Nil