Выход из системы Django (перенаправляют к домашней странице).. Удалить cookie?

Хороший Вопрос!

Один подход, который я скорее люблю, должен создать итератор/объект генератора, который испускает объекты-экземпляры, которые относятся к определенному контексту. Обычно этот объект переносит некоторый базовый материал доступа к базе данных, но я не должен знать это при использовании его.

, Например,

объект AnswerIterator генерирует AnswerIterator. Объекты ответа. Под капотом это выполняет итерации по SQL-оператору для выборки всех ответов и другого SQL-оператора для выборки всех связанных комментариев. Но при использовании итератора я просто использую объект Ответа, который имеет минимальные свойства для этого контекста. С определенным скелетным кодом это становится почти тривиальным, чтобы сделать.

я нашел, что это работает хорошо, когда у меня есть огромный набор данных, чтобы продолжить работать, и когда сделан правильно, он дает мне небольшие, временные объекты, которые относительно легко протестировать.

Это - в основном тонкая фанера по материалу Доступа к базе данных, но это все еще дает мне гибкость абстракции его, когда я должен.

17
задан Ramya 14 August 2009 в 00:08
поделиться

2 ответа

Как сказал jobscry, logout () очищает данные сеанса, но похоже, что вы также установили свои собственные файлы cookie.

Вы можете обернуть представление auth logout, которое вернет HttpResponse:

def logout_user(request):
     response = logout(request, next_page=reverse('app.home.views.home'))
     response.delete_cookie('user_location')
     return response

Или, если вы просто используете метод выхода из системы, а не представление, вы можете использовать возвращаемое значение для имеющегося у вас метода redirect () [который, как я полагаю, также возвращает HttpResponse].

def logout_user(request):
     logout(request)
     response = redirect('app.home.views.home')
     response.delete_cookie('user_location')
     return response
25
ответ дан 30 November 2019 в 13:05
поделиться

согласно http://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.logout

Изменено в Django 1.0: Вызов logout () теперь очищает данные сеанса.

1
ответ дан 30 November 2019 в 13:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: