Использование сессии 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.
Там вы можете найти:
- Использование кэшированных сессий
- Использование файловых сессий
- Использование сеансов на основе файлов cookie
Вы можете использовать куки для магазина, список которого проголосовал пользователь.