4

Я хочу API Django-RESTful для модели в Django. Но вместо хранения данных в базе данных я хотел бы использовать текущий сеанс.Сессия как постоянное хранилище в Django REST?

Я думал о создании пользовательского ModelSerializer, который переопределяет create() и update(). Я также думал о том, чтобы менеджер пользовательских объектов, таких как:

MyModel.objects = SomeManager() 

проблем заключается в том, что я должен вставить экземпляр request.session с целью SomeManager(), но я не уверен, о том, где или как это сделать наилучшим образом.

Любые советы?

+0

Интересно ... но почему? – demux

+2

@ArnarYngvason Я делаю корзину покупок. Поэтому я хотел бы, чтобы пользователь добавил предметы в корзину. Когда закончите, я сохраню корзину в базе данных. – mrmclovin

ответ

1

Вместо переопределения create() и update() в сериализаторе вы должны посмотреть на переопределение представлений create() и update(). Это гораздо лучшее место для хранения переменных сеанса.

Вы даже можете создать свой собственный класс, который расширяет APIView, CreateModelMixin и UpdateModelMixin. Эти два микса будут предоставлять методы .update (request, * args, ** kwargs) и .create (request, * args, ** kwargs), которые реализуют обновление и сохранение существующего экземпляра модели.

Эта документация общих представлений DRF дает хорошее представление о них: http://www.django-rest-framework.org/api-guide/generic-views/. Кроме того, вы можете изучить www.cdrf.co, который содержит подробные описания с полными методами и атрибутами для каждого из представлений и сериализаторов классов Django REST Framework.

Это лучшее место для обработки временных переменных сеанса, пока вы не захотите сохранить эти данные в постоянном хранилище.

Смежные вопросы