2016-11-28 43 views
0

我需要爲某個問題設置一些標籤。在Question模型我使用TagForeignKey -如何將一個模型的多個記錄連接到Django中的另一個模型?

class Tag(models.Model): 
    tag_text = models.CharField(max_length = 200) 

class Question(models.Model): 
    tag = models.ForeignKey(Tag, on_delete = models.CASCADE) 

我在一個Question後端看到可以選擇一個Tag但我希望有一個單一的Question可以選擇多個Tags

我很困惑,那會是什麼 - ManyToMany/OneToMany/...

感謝

回答

3

使用ManyToMany關係。

作爲一個Question可以有多個標籤,以及一個Tag可以在那裏有多個問題。

class Tag(models.Model): 
    tag_text = models.CharField(max_length = 200) 

class Question(models.Model): 
    tag = models.ManyToManyField(Tag) 

相對查詢:

  1. 添加標籤到問題實例作爲,

    quest_instance.tags.add(your_tag_instance) 
    
  2. 要獲得問題的所有標籤,

    quest_instance.tags.all() 
    
  3. 獲取的所有問題對於特定標籤,

    tag_inst.question_set.all() 
    

注:相對查詢可能需要較小的更新。

相關問題