我想要 Django-RESTful API 用于 Django 中的模型。但不是将数据存储在数据库中,我想使用当前 session 。
我想过制作一个自定义 ModelSerializer 来覆盖 create() 和 update()。我还考虑过制作自定义对象管理器,例如:
MyModel.objects = SomeManager()
问题是我必须将 request.session 实例从 View 插入到 SomeManager(),但我不确定在哪里或如何以最佳方式执行此操作。
有小费吗?
最佳答案
与其在序列化程序中覆盖 create() 和 update(),您应该查看覆盖 View 的 create() 和 update()。这是处理 session 变量的好地方。
您甚至可以创建自己的类来扩展 APIView、CreateModelMixin 和 UpdateModelMixin。
这两个 mixin 将提供 .update(request, *args, **kwargs) 和 .create(request, *args, **kwargs) 方法,实现更新和保存现有模型实例。
DRF 通用 View 的这个文档给出了关于它们的好主意:http://www.django-rest-framework.org/api-guide/generic-views/ .此外,您可以浏览 www.cdrf.co,该网站对 Django REST Framework 的每个基于类的 View 和序列化程序都有详细的描述,以及完整的方法和属性。
这是处理临时 session 变量的更好地方,直到您想将此数据保存到持久存储中。
关于django - session 作为 Django REST 中的持久存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32155851/