Список отображения шаблонов Django - PullRequest
0 голосов
/ 12 сентября 2011

Это своего рода продолжение предыдущего вопроса, но я перепишу весь свой код здесь -

Я хочу отобразить содержимое списка в Django, и я использую это в своем шаблоне -

<body>
  <h1>Testing the class page backend</h1>
  <ul>
    { % for author in authors% }
      <li>{{ author|safe }}</li>
    { % endfor % }
  </ul>
</body> 

(я добавил сейф в результате последнего вопроса). Для тестирования я устанавливаю searchTerm также равным "Math 51". авторам предоставляется эта функция -

def getAllInformation(searchTerm, template_name):
    searchTerm = "MATH 51"
    nameAndNumberStore = modifySearchTerm(searchTerm)
    url = modifyUrl(nameAndNumberStore)
    soup = getHtml(url)
    information = []
    if (checkIfValidClass(soup,nameAndNumberStore)):
        storeOfEditions = getEdition(soup)
        storeOfAuthorNames = getAuthorName(soup)
        storeOfBookNames = getBookNames(soup)
        storeOfImages = getImages(soup)
    information.append(storeOfAuthorNames)  #REMEMBER this is a list of two lists 
    information.append(storeOfEditions)
    return render_to_response(
      template_name,
      {'authors': storeOfAuthorNames},
    )

getAuthorName также это -

def getAuthorName(soup):
    temp = soup.findAll('li', {"class": "efb9"})
    storeOfAuthorNames = []
    reName = re.compile('Author:&nbsp;(\w+)')
    for i in range(len(temp)):
        if (i % 2 == 0):
            name = temp[i].string
            editedName = re.findall(reName, name)
            editedName = editedName[0]
            storeOfAuthorNames.append(editedName)
    return storeOfAuthorNames

Я точно знаю, что если бы я вводил MATH 51 как searchTerm, storeOfAuthorNames возвращает значение (в данном случае 'Levandosky'), потому что я напечатал на консоль и показал это.

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

Кто-нибудь может помочь?

Edit- Также содержимое temp -

[ <li class="efb9"> Author:&nbsp;Levandosky </li>,
  <li class="efb9"> Edition:&nbsp; </li> ]

Ответы [ 2 ]

3 голосов
/ 12 сентября 2011

Проблема в том, что опечатки.Некоторые места находятся не в том месте.используйте это

{% for author in authors %}
    <li>{{ author|safe }}</li>
{% endfor %}
0 голосов
/ 12 сентября 2011

Самый простой способ отобразить список в django:

{{ var|unordered_list }}

Вы также можете добавить safe, если хотите отобразить html:

{{ mylist|safe|unordered_list }}

ПРИМЕЧАНИЕ: в последнем коде я не уверен на 100%, если safe до или после unordered_list

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...