編輯我的問題,使其更清晰。如果我所問的問題很明顯或容易解決,我很抱歉,我剛剛開始。如何爲Django中的兩個模型創建內容標記系統?
您好,我正在開發一個網站,其中有2個模型的內容:文章和漫畫。現在我想要一個允許我用特定關鍵字標記文章和漫畫的系統。然後可以使用這些關鍵字從兩個模型中檢索對象列表並顯示它們。
起初,我將系統設置如下:
class Article(models.Model):
.....
class Comic(models.Model):
.....
class Tag(models.Model):
tag = models.CharField(max_length = 25)
article = models.ForeignKey(Article)
comic = models.ForeignKey(Comic)
然而,這沒有工作了。
然後我試圖實現2個不同的標籤車型爲2種不同的型號:ArticleTag和ComicTag,以下列方式:
class Article(models.Model):
.....
class ArticleTag(models.Model):
tag = models.CharField(max_length = 25)
article = models.ForeignKey(Article)
class Comic(models.Model):
.....
class ComicTag(models.Model):
tag = models.CharField(max_length = 25)
comic = models.ForeignKey(Comic)
這也沒有工作,因爲我能夠得到的標籤列表的文章,但我無法獲得具有相同標記的文章列表。而且它也使用了2種不同的標籤模型,因此也不太可取。
根據我提供的先前信息,用戶建議了一個ManyToManyField。然而,這究竟是如何工作的?
現在,使用Django創建內容標記系統的最佳方式是什麼?它應該最好只與3個模型一起工作:文章,漫畫和標籤,而不是像我試過的那樣。總之,我想要一個系統,可以讓我使用一個標籤從2個模型中獲取對象列表。所以,我真的很感謝任何形式的幫助,因爲我是一個業餘編程(非常明顯),我完全被這個問題困住了。
等待,不會Article.objects.filter(tags__name =「tag_name_here」)讓我與該標籤的文章列表? –
@TahmidKhanNafee你是正確的 - 更新我的答案,謝謝! – YPCrumble
哦,現在它是有道理的,無論如何,我用更多的信息更新了這個問題,因爲前一個非常乏味。不過,謝謝你的回答。 –