Форум сайта python.su
Здравствуйте!
Заранее извиняюсь, если употребляю неправильные термины. С Zope почти не знаком, с Python - подавно. Но появилась проблема, которую необходимо решить в ближайшее время. Поэтому прошу помощи у вас.
Проблема в следующем: на странице есть вывод статей. раньше всё работало, а сейчас перестало. о причинах даже догадок нет. (сайт: hr-hunter.com)
Подробней:
Код вывода статей:
<UL tal:repeat="curs python:here.edu.getListCurs()[:6]">
<LI><a class=educate_pr tal:content="curs/title" tal:attributes="href curs/getURL"/><br>
<p class=educate_p><span tal:replace="structure curs/shortstory"/></p>
<p class=educate_d style="color:#EA0C0C;">начало: <span tal:content="python:here.getDateStr(date0=curs.publishdate)"/> </p>
</LI>
</ul>
request = container.REQUEST
RESPONSE = request.RESPONSE
#Вычисляем город
shorttitle=getattr(request, 'city', '')
#Определяем диапазон дат для поиска
m=[['январь',31,1],['февраль',28,2],['март',31,3],['апрель',30,4],['май',31,5],['июнь',30,6],['июль',31,7],['август',31,8],['сентябрь',30,9],['октябрь',31,10],['ноябрь',30,11],['декабрь',31,12]]
if request.get('month','')!='':
ds=DateTime(DateTime(request.get('year','') + '/' + request.get('month','')+ '/01').Date())
for i in m:
if request.get('month','')==str(i[2]):
d_end=i[1]
de=DateTime(DateTime(str(d_end)+ '/' + request.get('month','') + '/' + request.get('year','')).Date())
res = container.Catalog.searchResults(path=['/hr_hunter/edu/seminar', '/edu/seminar'], meta_type='MIssue', visible='on', sort_on='publishdate', shorttitle=shorttitle, publishdate=[ds, de], publishdate_usage='range:max:min')
else:
res = container.Catalog.searchResults(path=['/hr_hunter/edu/', '/edu/'], meta_type='MIssue', visible='on', sort_on='publishdate', shorttitle=shorttitle, publishdate=DateTime(), publishdate_usage='range:min')
import ZTUtils
res = ZTUtils.LazyFilter(res, skip='')
#rest=[]
#rest.append(res)
#rest.append(ds)
#rest.append(de)
return res
Отредактировано (Май 28, 2008 18:18:49)
Офлайн
<ul>
<li tal:repeat="curs python:here.edu.getListCurs()[:6]">
<a class="educate_pr" tal:content="curs/title" tal:attributes="href curs/getURL" />
<br />
<p class="educate_p" tal:content="structure curs/shortstory" />
<p class="educate_d" style="color:#EA0C0C;">
начало:
<span tal:content="python:here.getDateStr(date0=curs.publishdate)" />
</p>
</li>
</ul>
Отредактировано (Май 28, 2008 19:09:41)
Офлайн
Спасибо за помощь, но это немного не то.
Проблема вёрстки несущественна. Т.е., вывод <ul><li/></ul> не играет роли.
<p class=educate_p><span tal:replace=“structure curs/shortstory” /></p> и <p class=“educate_p” tal:content=“structure curs/shortstory” /> в результате приводит к одному и тому же результату, насколько я уже успел разобраться.
А вот основная проблема всё же осталась… Статьи не выводятся ни старым, ни Вашим методом.
Что ещё может быть?
Все ли исходники я дал, чтобы увидеть картину?
Ещё замечу, что каталог /edu/seminar/ содержит в себе другие каталоги, в которых находятся статьи. не знаю, насколько это важно, т.к. не знаю, как работает container.Catalog.searchResults()
Отредактировано (Май 29, 2008 09:44:57)
Офлайн
YOOraЯ не проверстку говорю. Смотрите внимательнее, что я написал.
Спасибо за помощь, но это немного не то.
Проблема вёрстки несущественна. Т.е., вывод <ul><li/></ul> не играет роли.
<p class=educate_p><span tal:replace=“structure curs/shortstory” /></p> и <p class=“educate_p” tal:content=“structure curs/shortstory” /> в результате приводит к одному и тому же результату, насколько я уже успел разобраться.
А вот основная проблема всё же осталась… Статьи не выводятся ни старым, ни Вашим методом.
Что ещё может быть?
Все ли исходники я дал, чтобы увидеть картину?
Ещё замечу, что каталог /edu/seminar/ содержит в себе другие каталоги, в которых находятся статьи. не знаю, насколько это важно, т.к. не знаю, как работает container.Catalog.searchResults()
Отредактировано (Май 29, 2008 12:37:16)
Офлайн
Я извиняюсь, но где ошибка? в нашем случае мы заменяем тег SPAN содержимым curs/shortstory, а в Вашем мы помещаем его в тег P. (это вопрос, т.к. я больше в PHP разбираюсь, чем в Python/Zope).
Кстати, до кучи, в чём разница между употреблением конструкции structure и её отсутствием?
Только что для скрипта edu.getListCurs нажал кнопочку Test, ввёл данные (month='02', year='2008', city='Москва'), нажал RunScript и получил ошибку:
Тип ошибки: UnboundLocalError
Значение ошибки: local variable ‘d_end’ referenced before assignment
… но полагаю, это не относится к делу. только что посмотрел другой скрипт, который вызывает этот метод - всё отрабатывается без проблем.
Отредактировано (Май 29, 2008 14:51:08)
Офлайн
YOOraДело не в этом.
Я извиняюсь, но где ошибка? в нашем случае мы заменяем тег SPAN содержимым curs/shortstory, а в Вашем мы помещаем его в тег P. (это вопрос, т.к. я больше в PHP разбираюсь, чем в Python/Zope).
YOOrastructure означает отрендерить html-тэги. Т.е. если curs/shortstory возвращает некий HTML-код, то без structure в браузере будут отображаться тэги (т.е он конвертирует в < > для браузера и тд).
Кстати, до кучи, в чём разница между употреблением конструкции structure и её отсутствием?
Отредактировано (Май 29, 2008 15:32:22)
Офлайн
astoonДа. Но это всё же проблема вёрстки. Т.е., насколько я понимаю, меняется только стиль вывода. Эта проблема меня не сильно задевает. я ставил и Ваш код - и результат всё тот же. ( есть ещё какие-нибудь мысли?
Дело не в этом.
tal:repeat - это повторение по циклу. У Вас получается что повторяется html-тэг ul, а должен повторяться тэг li, что я и написал.
astoonспасибоYOOrastructure означает отрендерить html-тэги. Т.е. если curs/shortstory возвращает некий HTML-код, то без structure в браузере будут отображаться тэги (т.е он конвертирует в < > для браузера и тд).
Кстати, до кучи, в чём разница между употреблением конструкции structure и её отсутствием?
Офлайн
Тогда не знаю. Без специальных знаний тебе надо поэксперементировать примерно с таким кодом:
res = container.Catalog.searchResults(
path=['/hr_hunter/edu/', '/edu/'],
meta_type='MIssue',
visible='on',
sort_on='publishdate',
shorttitle=shorttitle,
publishdate=DateTime(),
publishdate_usage='range:min')
return res
Офлайн
оки. спасибо большое за интерес к проблеме.
Офлайн
ОФигеть!.. это сайт на Zope???
Офлайн