две или более точек в шаблоне django после переменной - PullRequest
0 голосов
/ 22 сентября 2011

В шаблоне django возможно ли иметь две (или более) точки после переменной? Например, скажем, у меня есть список объектов, для которых я сначала хочу использовать поиск по индексу списка, а затем, когда у меня есть объект, я хочу вызвать его метод для получения абсолютного URL, это должно сработать?

For example:
    {% for entry in myList %}
    {{ entry.0.get_absolute_url }}
    {% endfor %}

Итак, 0 запрашивает первый элемент в списке, который является объектом, затем я хочу получить абсолютный URL. Это не работает, когда я пытаюсь это сделать, но и не возвращает ошибку. Есть ли лучший способ выполнить то, что я пытаюсь сделать?

Чтобы прояснить это, странно то, что:

Это работает:

{{ singleObject.get_absolute_url }}

В этом случае, если я просто попробую {{ singleObject }}, я получу значение Unicode для этого объекта, например, John Smith

Это не работает:

{% for object in objectList %}
{{ object.get_absolute_url }}
{% endfor %}

Но в этом случае, если я введу {{объект}}, я больше не получу значение Юникода. Я получаю: [<Name: John Smith>] (имя и название модели)

В принципе, метод работает, когда он находится вне цикла. Может ли быть причина для этого?

Ответы [ 3 ]

0 голосов
/ 22 сентября 2011

более одной точки абсолютно работает.

на основе вашего комментария, нет entry.0, потому что entry является первым элементом в списке, потому что вы уже просматриваете `myList '

просто используйте entry.get_absolute_url вместо

но если вы хотите распечатать только URL для первой записи, откажитесь от цикла for и просто используйте myList.0.get_absolute_url

UPDATE:

есть совет от «прагматичного программиста», который говорит:

`` выберите ’’ не сломано

Редко можно найти ошибку в ОС или компилятор или даже сторонний продукт или библиотека. Ошибка самая скорее всего в приложении.

Я думаю, вы предполагали, что шаблоны django вели себя странно, когда правда в том, что вы не правильно строили свой список. не бойтесь показывать некоторые из ваших реальных кодов, абстрагируя нас от проблемы, вы удалили часть, которая включала проблему

0 голосов
/ 22 сентября 2011

Я понял.У меня были скобки вокруг каждого элемента в моем списке, например, так:

objectList = [['John Smith'], ['Jim Jones'], ['Bill White']]

Глупый я!Большое спасибо за ваш вклад

0 голосов
/ 22 сентября 2011

То, что вы делаете, вполне приемлемо в шаблонах Django. Нет лучшего способа выполнить то, что вы пытаетесь сделать.

...