在视图之外使用Django会话

时间:2013-12-24 21:31:42

标签: python django django-sessions

我的Django应用程序没有用户登录。任何人都可以访问该应用程序并在不同的歌曲列表上投票。我想要的是,当用户投票时,不应该允许用户在该列表中再次投票。

这是我的AJAX代码

ajax.py

from django.contrib.sessions.models import Session

s = SessionStore()

@dajaxice_register
def update_disable(request):
    #updates song votes and disables all vote buttons on page
    s['can_vote'] = False
    s.save()
    return dajax.json()

我需要获得session_key,我认为这样做。我怎么做到的?文档在这方面并不十分清楚。

这就是我在HTML中所做的事情

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

我是否正确接近了Djnago Session概念?对此有任何建议表示赞赏。

1 个答案:

答案 0 :(得分:1)

来自Django文档:How to use sessions

Django为匿名会话提供全面支持。会话框架允许您基于每个站点访问者存储和检索任意数据。它在服务器端存储数据并抽象发送和接收cookie。

在那里你可以找到:

  1. 使用缓存会话
  2. 使用基于文件的会话
  3. 使用基于Cookie的会话
  4. 您可以将Cookie用于存储用户已投票的列表。