python - 如何结合 Django 的 ‘LoginRequiredMixin’ 和表单工具的 ‘FormPreview’ ?

标签 python django django-forms django-authentication

LoginRequiredMixin 在其他基于类的 View 上效果很好。此外,表单工具 FormPreview 工作正常。但是当我尝试同时使用两者时,LoginRequiredMixin 会被忽略。

如果我使用来自 form tools 的最基本示例,情况甚至如此和 Django documentation .

有两件事我觉得很奇怪(但这不一定是原因):

  • “这个 mixin 应该在继承列表的最左边。”这听起来像是有一些内部 hack,如果有人做了一些不正常的事情就会崩溃。没有解释为什么。
  • 应该调用表单工具 View 本身,而不是方法 .as_view(),这又是不合标准的。

这是一个错误吗?我能做什么?

最佳答案

FormPreview 不是基于通用类的 View ,因此您不能将它与 LoginRequiredMixin 等混合使用。

您可以使用 login_required在 URL 模式中包含表单预览实例时的装饰器:

from django.contrib.auth.decorators import login_required

url_patterns = [
    url(r'^form-handler/$', login_required(MyFormPreview(SomeModelForm))),
]

关于python - 如何结合 Django 的 ‘LoginRequiredMixin’ 和表单工具的 ‘FormPreview’ ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50682736/

相关文章:

python - 覆盖 Django 中 ChoiceField 的初始化

python - 在Django模板中以另一条记录的字段内容为标签显示未知数量的字段

python - python 中的简化扫雷递归 : why is this code not succeeding?

python - Psycopg2 中的元命令 -\d 不工作

python - 在 Django 中,如何使用 iexact 检查项目是否不区分大小写匹配?

python - 如何使用 django ejabberd 桥对用户进行身份验证

python - 表单字段API?

python - Django crispy-forms 找不到 CSS

python - 如何将我自己的 Meta 类与 SQLAlchemy-Model 一起用作父类

python - 创建 MS COCO 样式数据集