django - session 作为 Django REST 中的持久存储?

标签 django django-rest-framework django-sessions serialization

我想要 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/

相关文章:

django - 如何使 django 用户处于非事件状态并使其所有 session 失效

python - CharField 文件名到 Django 中的 ImageFields

django - 什么是运行 Django 时的 StatReloader?

python - PostgreSQL Psycopg2

python - 如何在 DRF 中获取图像的完整 url?

python - 如何在 Django 中设置 session 超时?

python - 字段错误 : Cannot resolve keyword 'XXXX' into field

Django 休息框架 - PrimaryKeyRelatedField

mysql - 如何在Django RF项目中使用UUID作为主键保留原始ID?

python - 从装饰器访问 django session