2012-06-03 20 views
0

我想找到一個很好的教程Django如何在模型中創建多個標記。Django的多個標記字段

例如:

class Tag(models.Model): 
    name = models.CharField() 

class Sample(models.Model): 
    name = models.CharField() 
    urlA = models.CharField() 
    urlB = models.CharField() 
    tagA = models.ManyToManyField(Tag) 
    tagB = models.ManyToManyField(Tag) 

我想顯示的變量作爲保存方法的輸入字段和單獨用「」和分裂。所以我想看到2個標記字段的2個不同的輸入。

如果你有一個簡單的方法來做或知道一個很好的教程,請告訴我! :)

謝謝你們!

回答

0

編輯:你不必把實際的桌子放在桌子上。您可以生成您想要在您的視圖中存儲的任何查詢集。您的url conf可以設置爲顯示來自多個url的詳細信息視圖。如果我仍然不理解,請優化你的問題。

對於有多個任何標籤類別你要麼m21或m2m。所以當你創建你的標籤時,你可以逐個添加它們。您是否熟悉Django ORM提供的某些管理功能?請仔細閱讀文檔。你對這個問題的處理方式是合理的。不要試圖以錯誤的方式來磨擦你,我不是天才。你會做這樣的事情。

class Tag(models.Model): 
    title = models.CharField(max_length=250, blank=True) 
    slug = models.SlugField(blank=True 

    class Meta: 
     verbose_name = "tag" 
     verbose_name_plural = "tags" 
     ordering = ['title'] 

    @models.permalink 
    def get_absolute_url(self): 
    return "/tags/%s/" % self.slug 

class Entry(models.Model): 
    title = models.CharField(max_length=250, blank=True) 
    body = models.TextField() 
    tags = models.ManyToMany('Tag') 
    slug = models.SlugField() 


    @models.permalink 
    def get_absolute_url(self): 
     return "/blog/%s/" % self.slug 

對於EntryAdmin和TagAdmin模型還有更多的代碼需要完成,還有很多其他的事情都可以完成。如果你能更清楚一點,我不確定你試圖達到什麼目的?謝謝,以上是我如何處理它的粗略例證。

+0

我想你誤會了我。我想將標籤表加入模型2次。我需要兩個(稍後超過兩個)URL字段,而且我不想爲每個標籤列出2個(稍後更多)不同的標籤列表。我需要2個十字桌。 –

+0

也許我是誤解,因爲從我的角度來看,你的方法似乎並不太接近正確。我瞭解你的方法。你試圖做什麼,你會需要兩套標籤爲每個模型?我使用django-tagging對我來說就像tag = TagField()一樣簡單。然後在我的模型編輯實例中,我可以在逗號分隔的列表中輸入標籤,這比我展示的方法更勝一籌,因爲它具有更多功能,並且不必按住加號按鈕即可向該實例添加另一個m2m標籤關係。 – eusid

+0

是的,我不想在模型中使用兩套(或多套)標籤。如果我使用標記,我唯一的工作是tagA = TagField()和tabB = TagField(),我可以通過網站上的表單處理它並自動在管理中處理它?現在我不想在管理員中使用它。 (抱歉,我做了很多工作,答案很慢) –