Я установил django-session-security 2.6.1 на Django 1.9 для выхода из системы неактивных пользователей через два часа.У меня есть следующее в моих настройках:
INSTALLED_APPS = (
...
'session_security',
...
]
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'intro.middleware.director.SiteDirector',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'session_security.middleware.SessionSecurityMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'reversion.middleware.RevisionMiddleware',
'intro.middleware.persistfilter.FilterPersistMiddleware',
'content.middleware.content.ContentMiddleware',
'intro.middleware.booking.BookingMiddleware',
'common.middleware.accounts.PasswordChangeMiddleware'
)
# session security
SESSION_SECURITY_WARN_AFTER = 6900
SESSION_SECURITY_EXPIRE_AFTER = 7200
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
...
и в base.html в <head>
<script src="{% static "suit/js/jquery-1.8.3.min.js" %}"></script>
{% include 'session_security/all.html' %}
Для каждой загрузки страницы на сайте, если прошло 10 секунд или болееследующее всплывающее окно появляется при переходе на другую страницу в том же домене Это не только в Firefox, но и в Chrome.Поиск других людей с похожими проблемами не дает полезных результатов, но показывает, что проблема вызвана командой javascript onbeforeunload :
У меня есть другой проект Django 1.6.1 и django-session-безопасность 2.2.4.Единственное различие, которое я вижу, состоит в том, что в Django 1.9 у меня должен быть SESSION_EXPIRE_AT_BROWSER_CLOSE = True
, или django вылетает при любой перезагрузке страницы, где в Django 1.6.1 это вообще не установлено.Может ли быть какая-то проблема с моей версией jquery?Буду признателен за любые решения.
Просто добавлю, что если я возьму
{% include 'session_security/all.html' %}
из base.html, я больше не получу всплывающие окна, но предупреждение не отображается.Пользователь все еще выходит из системы, хотя.Еще одно примечание, у меня есть
url(r'session_security/', include('session_security.urls')),
в urls.py.
ОБНОВЛЕНИЕ Существует некоторая несовместимость с django-smart-select-ами, и в частности
(function($) {
var chainfield = "#id_supplier";
var url = "/chaining/filter/money/Item/supplier/intro/BookingItem/item";
var id = "#id_item";
var value = undefined;
var auto_choose = true;
var empty_label = "---------";
$(document).ready(function() {
chainedfk.init(chainfield, url, id, value, empty_label, auto_choose);
});
})(jQuery || django.jQuery);
Это, похоже, вставлено в мой шаблон из smart_selects / static / smart-selects / admin / js / chainedfk.js
Я могу только догадываться, что jQuery || django.jQuery
означает переменную jQuery ИЛИ django.jQuery, в зависимости от того, какой из них установлен, и который передается в функцию, которая затем ... ну, тогда я теряюсь в отношении того, для чего используется этот параметр или где он используется.
Я попытался указатьjQuery, который должен использовать умный выбор, но это не имеет значения.Похоже, я должен реализовать свой собственный вызов ajax select update.