从模板文件发送django消息

时间:2017-02-19 18:42:59

标签: python django

是否可以使用模板文件中的django message framework设置消息?

{% if not userIsLoggedIn %}
   <a href="{% url 'login' %}" class="btn btn-primary">Buy</a> 
   {# I want to send message to the user who click this buy button on the login page #}
{% elif not game_bought and game.price != 0   %}
   <form action="/buy" method="POST">
       <input class="btn btn-primary" type="submit" value="Buy">
   </form>
{% endif %}

我可以通过使用查询字符串来思考一种使用查询字符串的hackish方式,但如果我可以使用django的消息框架那就很好。

2 个答案:

答案 0 :(得分:1)

这里有两个错误的假设。

首先,你不能“从模板”做任何事情。需要用户交互的所有内容都必须通过在视图中处理的某种请求来完成。如果你希望它对用户透明,你可以使用一些Ajax请求,但它仍然需要是一个请求。

其次,Django的消息传递框架不适合在用户之间发送消息。消息存储在用户的会话中,一个用户无法修改另一个用户的会话。 Django有很多第三方消息库,或者你可以相当简单地推出自己的消息库。

答案 1 :(得分:0)

是的,您应该使用Django消息传递框架在视图中添加消息,然后在模板中将其显示给用户。请参阅此处的文档https://docs.djangoproject.com/en/1.10/ref/contrib/messages/