Plone: ​​проверьте, была ли отправлена ​​форма - PullRequest
1 голос
/ 17 февраля 2012

Я работаю над шаблоном Plone. В настоящее время я реализую поиск по шаблону. На шаблоне есть форма, которая передает тот же шаблон, то есть на ту же страницу.

Мне нужно разрешить просмотр определенных частей страницы, т. Е. Результатов DIV, только после отправки формы на странице. Я не уверен, как проверить, была ли отправлена ​​страница, и отобразить определенные ее части.

Я смотрел эту ссылку на использование form.submitted, но это действительно бесполезно. Я предполагаю, что все, что я должен сделать, будет сделано в теге tal:condition.

Любая помощь будет оценена.

Ответы [ 2 ]

3 голосов
/ 17 февраля 2012

Вы можете добавить скрытое поле, например, имя "submitedform" со значением = "1", а затем поставить условие на:

request.get('submitedform', 0)
0 голосов
/ 17 февраля 2012

Я нашел способ заставить его работать.

Я использовал tal:condition и проверял данные, которые находятся внутри объекта запроса при отправке формы.

Чтобы проверить, что находится в объекте запроса, просто поместите на свою страницу следующее:

<div tal:replace="structure request" />

Примечание. Когда вызывается объект запроса, он отображает читаемую версию данных в формате HTML. Мы используем «структуру» для предотвращения выхода из HTML.

Теперь для моего случая мне нужно было проверить, была ли отправлена ​​моя форма поиска. Поэтому внутри тега DIV я проверил, была ли строка запроса пустой или нет. Ниже приведен пример кода:

<!-- Form has been submitted -->
<div tal:condition="python:request.environ.get('QUERY_STRING') != ''"></div>

<!-- Form has not been submitted -->
<div tal:condition="python:request.environ.get('QUERY_STRING') == ''"></div>

Обратите внимание, что вы можете использовать любую переменную, которую хотите. Я просто решил использовать QUERY_STRING из объекта запроса.

Это может быть не идеально, но я надеюсь, что это даст направление кому-то еще.

...