Это своего рода продолжение предыдущего вопроса, но я перепишу весь свой код здесь -
Я хочу отобразить содержимое списка в 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: (\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: Levandosky </li>,
<li class="efb9"> Edition: </li> ]