Python 使用Django会话更改访问者权限

Python 使用Django会话更改访问者权限,python,django,django-sessions,Python,Django,Django Sessions,我有一个Django应用程序,其中包含一些民意测验。没有在我的网站上注册为用户的选项。我想允许访问者每七天只对特定的投票进行一次投票 这就是我在ajax.py文件中更改访问者权限的方式 这就是我在模板中禁用按钮的方式 {% if perms.hunt.has_voted %} <button type="button" class="btn btn-default" disabled="disabled"> Vote as Favourite </b

我有一个Django应用程序,其中包含一些民意测验。没有在我的网站上注册为用户的选项。我想允许访问者每七天只对特定的投票进行一次投票

这就是我在ajax.py文件中更改访问者权限的方式

这就是我在模板中禁用按钮的方式

{% if perms.hunt.has_voted %}
    <button type="button" class="btn btn-default" disabled="disabled">
      Vote as Favourite
    </button>
{% else %}
    <button type="button" class="btn btn-default" onclick="update(this);">
      Vote as Favourite
    </button>
{% endif %}

但即使在投票后,我的代码也会转到模板中的else部分。这里出了什么问题?

问题是,您正在将标志保存到会话中,但出于某种原因,您正在尝试读取perms.hunt.has_投票,检查用户hunt是否有投票权限,但如果用户hunt已投票或未投票,则不检查…,这是来自权限应用程序的值。这与会话无关

您需要从模板中访问会话值:

{% if request.session.has_voted %}
...

这将检查当前登录的用户是否已经投票,因此如果has_vote为False或密钥不存在,则用户将能够投票。

哦,我误解了教程。谢谢。
{% if request.session.has_voted %}
...