会话作为Django REST中的持久存储?

时间:2015-08-22 11:59:35

标签: django django-rest-framework django-sessions serializer

我想在Django中为模型使用Django-RESTful API。但是,我不想将数据存储在数据库中,而是希望使用当前会话。

我想过制作一个自定义的ModelSerializer来覆盖create()和update()。我还想过制作一个自定义对象管理器,如:

MyModel.objects = SomeManager()

问题是我必须将视图中的request.session实例插入到SomeManager()中,但我不确定在哪里或如何以最佳方式执行此操作。

任何提示?

1 个答案:

答案 0 :(得分:1)

您应该查看覆盖视图的create()和update(),而不是覆盖序列化程序中的create()和update()。这是处理会话变量的更好的地方。

您甚至可以创建自己的类,扩展APIView,CreateModelMixin和UpdateModelMixin。 这两个mixin将提供.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基于类的视图和序列化程序的详细描述,以及完整的方法和属性。

这是更好的处理临时会话变量的地方,直到您想要将此数据保存到持久存储中。