2014-12-06 2 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 = "{{ form.tags }}"?

+0

Можете ли вы любезно обновить свой вопрос с формой класса? Вам, вероятно, потребуется заполнить поле «теги» начальным значением – tutuDajuju

ответ

2

В вашей модели вы можете сделать следующее:

  1. Во-первых, вы должны иметь

    теги = TaggableManager (пустой = True)

  2. следующий будет получить все теги и вы может использовать get_tags в list_field для получения всех тегов для каждой записи.

    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), что означает, что вам нужно либо написать собственный тег шаблона, либо - если вы «используя слово« блог », чтобы означать« блог сообщение », и вы находитесь на одной странице блога - вы могли бы добавить это в контекст представления.