我有一个Django应用程序,它有点像一个网上商店。在应用中,POST是在一个名为posthandler.py这样Django,在呈现模板之前执行templatetag
{% load posthandler %}
{% posthandler %}
在那种总是加载中的index.html templatetag处理。在此之后,该文件中有这样的
{% block primary %}{% endblock %}
主位现在,这主要位显示一个值,股票,这就有可能在posthandler位进行了调整。意思是,价值可能是陈旧的。这具有人物点击物品的作用,将其添加到他们的订单列表中,但是在库存值正确地反映数据库中的值之前需要两次刷新的页面。
我认为这是因为模板标签被处理的顺序,就像这样;
- 用户点击按钮添加通过视图orderlist
- 页面将重新加载,首先呈现在index.html中的股票价值基于什么是目前在DB
- 的posthandler.py运行,从其减去一个来自股票,所以数据库现在是最新的。
- 页面显示错误的编号,因为该值是在调整前从数据库中检索的。
我认为要处理该视图中的帖子,但我希望同一个处理程序可以在所有不同的页面上运行,所以看起来似乎没有办法。有一个更好的方法吗?或者,我可以让主块在模板标签之后执行吗?
我没有这样一个页面,因为我没有真正想到这一点。我会研究中间件。 – Eloque
拥有专门用于接收和处理此POST请求的单个页面似乎是要走的路。它会更清晰,更容易,并且会节省检查请求方法的开销,并且在它为POST的情况下,检查提交的表单是否是您想要处理的表单。 –
我有点想要这个过程是透明的。也许以后甚至没有重新加载。您建议的中间件解决方案目前工作良好。谢谢。 – Eloque