2015-09-23 2 views
-1

У меня есть список событий (со ссылками), которые я хочу показать, как запятую, какВставить Запятая список элементов

event1, event2, event3

Я пытался the solution here, но не работает для меня.

Вот код:

<p> 

    {% for element in event.getelement.all() %} 

     <a href="{{ build_absolute_url(url('main:home_getlink',link.uri)) }}"> 
     {{ element }} </a> 
    {% endfor %} 
</p> 
+0

Вы * не * используете шаблоны Django. Кажется, вы используете Jinja2. –

ответ

1

Do:

<p> 
    {% for element in event.getelement.all %} 
     <a href="{{ build_absolute_url(url('main:home_getlink',link.uri)) }}"> 
     {{ element }} 
     </a>{% if not forloop.last %}, {% endif %} 
    {% endfor %} 
</p> 

Кроме того, что с этой href? Вы не используете именованные маршруты, посредством которых вы можете просто использовать тег {% url [route-name] [params] %}?

+0

Я добавил деталь, но не вставляет запятую: \ – user2714823

+0

Единственный способ, которым этот код не работал, - если бы не было элементов для повторения. – Brandon

+0

Он говорит, что forloop не определено – user2714823

0

Этот не должен быть вызовом функции, так как он находится внутри template. Изменение ниже,

{% for element in event.getelement.all() %} 

с

{% for element in event.getelement.all %} 

И для отдыха, ссылка решения Вы разместили должна работать после этого.


Edit:

Если вы сделаете это,

{{ event.getelement.all|join:", " }} 

Так что это может произвести результат что-то подобное,

GetElement object, GetElement object, GetElement object 

, чтобы получить значение определенного атрибута вам также нужно добавить атрибут. Нечто подобное,

{% for e in event.getelement.all %} 
    {{ e.<attr_name> }}, 
{% endfor %} 

И это могло бы создать нечто подобное,

event1, event2, event3, 

Конечно, это не является оптимальным решением, так как это не правильный способ делать вещи при использовании каких-либо рамок.


Оптимальное решение:

Что должно следовать, что, делать каждый логики в вашем views и отправить чистую (чистую) форму data вашему templates. Я имею в виду отправить lists, dictionaries, objects, tuples необходимо отправить в templates. Следовательно, создание list всех событий и отправка его templates, хотя context.

Примечание: Следующий пример основан на предположениях.

Вид:

def xyz(request): 
    event = Event.objects.get(name='xyz') 
    context = { 
     'event_elements': [e.name for e in event.getelement.all()] 
    } 

    return render(request, 'xyz.html', context) 

Шаблон:

{{ event_elements|join:", " }} 

Теперь это будет определенно работать.

+0

Я уже пробовал решение, но оно не вставляет запятую. – user2714823

+0

Можете ли вы разместить свою модель 'event'? И как 'событие' и' getelement' связаны друг с другом? –

+0

@ user2714823: Проверить обновления –

Смежные вопросы