有没有办法从基于类的视图中获得request.session

例如,我有

from django.views.generic.edit import FormView

class CreateProfileView(FormView):
    def form_valid(self, form):
        # --> would like to save form contents to session here

        return redirect(self.get_success_url())

我唯一能想到的就是通过添加

def as_view(self, request, *args, **kwargs):
    self.session = request.session
    super(CreateProfileView, self).as_view(request, *args, **kwargs)

致全班同学.但这看起来很难看.有没有别的办法?

推荐答案

你可以在班里的任何地方访问self.request(因此可以访问self.request.session)

https://docs.djangoproject.com/en/dev/topics/class-based-views/generic-display/#dynamic-filtering

实现这一点的关键部分是,当调用基于类的视图时,各种有用的东西都存储在self上;以及请求(self.request),这包括根据URLconf捕获的位置参数(self.args)和基于名称的参数(self.kwargs).

Django相关问答推荐

在生产中添加整型主键

Django:作为模型中的列表元素的字段

如何在Django模板中为无效词典查找打开异常?

Django 根据子级过滤父级

一次请求中更新整个Django模型

使用 Crispy Forms 时 Django 返回 'TemplateDoesNotExist'

如何将数据(具体归档)从views.py 传递到models.py

在 settings.py 中指定 Django 测试数据库名称

Django 嵌套事务 - with transaction.atomic()

是否有 django 模板过滤器来显示百分比?

Django Calendar日历小部件?

Django 管理命令参数

重命名 django 元素的简单方法

Django 删除未使用的媒体文件

在python中查找对对象的所有引用

将 Django Rest Framework 与序列化程序一起使用时出现 AttributeError

Django 应用程序运行良好,但收到 TEMPLATE_* 警告消息

Django - 在设置中使用反向 url 映射

Jinja2中的多级模板继承?

如何使用 ModelSerializer 显示所有模型字段?