У меня есть приложение Django, которое является чем-то вроде интернет-магазина. В приложении, POST обрабатывается в templatetag называется posthandler.py как этотDjango, выполнить templatetag перед шаблоном рендеринга
{% load posthandler %}
{% posthandler %}
В index.html, который всегда загружен. После этого, в файле есть основной бит как этот
{% block primary %}{% endblock %}
Теперь, что первичный бит отображает значение, акции, которые могут быть скорректированы в бите posthandler. Значение, значение может быть устаревшим. Это приводит к тому, что человек нажимает на элемент, добавляя его в свой список заказов, но страница, нуждающаяся в двух обновлениях до того, как значение запаса правильно отражает значение в БД.
Я думаю, что это из-за порядка обработки templatetags, что-то вроде этого;
- Пользователь кнопку нажмет, чтобы добавить к OrderList
- обновления страницы с помощью зрения, первой визуализации значения запаса в index.html на основе того, что в настоящее время в БД
- The posthandler.py работает, вычитая один из акций, поэтому БД теперь обновляется.
- На странице отображается неправильный номер, поскольку это значение было извлечено из БД до его настройки.
Я бы подумал обработать сообщение в представлении, но я хочу, чтобы один и тот же почтовый манипулятор работал на всех разных страницах, так что это не похоже на путь. Есть лучший способ сделать это? Или, могу ли я заставить основной блок выполнять только после templatetags?
У меня нет такой страницы, потому что я на самом деле не думал об этом. Я посмотрю в средние. – Eloque
Наличие одной страницы, предназначенной для приема и обработки этого запроса POST, похоже на путь. Это будет намного проще, проще и сэкономить накладные расходы на проверку метода запроса, а в случае POST - проверить, что представленная форма является той, которую вы хотите обработать. –
Я вроде бы хочу, чтобы процесс был прозрачным. Возможно, позже даже без перезагрузки.До сих пор предлагаемое промежуточное решение прекрасно работает. Спасибо. – Eloque