2014-12-06 101 views
4

我可以用一個像這樣的模板Django的taggit如何讓所有標籤

{% for tag in blog.tags.all %} 
    <span class="label label-default">{{ tag.name }}</span> 
{% endfor %} 

得到所有標籤的名字之一,我可以從這樣{{ form.tags }}形式獲得的輸入,這讓我:

<input id="id_tags" name="tags" type="text" value="xxx,y y y,zzz"> 

不過,我想自定義輸入在我的模板,這樣

<input id="id_tags" class="form-control" maxlength="50" name="title" type="text" placeholder="tags" value="{{ form.tags }}"> 

如何設置在put's value =「{{ form.tags }}」?

+0

能不能請你的表單類更新你的問題?您可能需要用初始值填充「標籤」字段 – tutuDajuju 2015-05-04 11:45:54

回答

2

在你的模型,你可以做到以下幾點:

  1. 首先,你應該有

    標籤= TaggableManager(空白= TRUE)

  2. 下面將得到所有的標籤和你可以使用list_field中的get_tags來獲取每條記錄的所有標籤。

    def get_tags(self): tags = [] for tag in self.tags.all(): tags.append(str(tag)) return ', '.join(tags)

0

如果可能的話,我建議你最好使用Django的基於類的表單(而不是手工編寫HTML),因爲Taggit已經爲你處理了這個問題。

但試圖回答你的問題,如果你想獲得特定對象的所有標籤,我認爲你需要的是blog.tags.values_list('name', flat = True),這意味着你需要編寫一個自定義模板標籤或 - 如果你'使用'blog'這個詞來表示'博客'',並且您處於單個博客文章頁面 - 您可以將上述內容添加到視圖的上下文中。