Использование сессии Django вне поля зрения

Мое приложение 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 %}

Правильно ли я подхожу к концепции сессии Джнаго? Любой совет по этому вопросу приветствуется.

1 ответ

Из документации Django: Как использовать сессии

Django обеспечивает полную поддержку анонимных сессий. Инфраструктура сеансов позволяет хранить и извлекать произвольные данные для каждого посетителя сайта. Он хранит данные на стороне сервера и объявляет об отправке и получении файлов cookie.

Там вы можете найти:

  1. Использование кэшированных сессий
  2. Использование файловых сессий
  3. Использование сеансов на основе файлов cookie

Вы можете использовать куки для магазина, список которого проголосовал пользователь.

Другие вопросы по тегам