【问题标题】:using mixin with a def使用带有 def 的 mixin
【发布时间】:2021-03-12 13:27:55
【问题描述】:

我在 generic.views 上使用这个 Accessmixin:

class OrganisorAndLoginRequiredMixin(AccessMixin):
    """Verify that the current user is authenticated and is an organisor."""
    def dispatch(self, request, *args, **kwargs):
        if not request.user.is_authenticated or not request.user.is_organisor:
            return redirect("home")
        return super().dispatch(request, *args, **kwargs)

我想在 def 上使用它。我试过这个,但我有以下错误。

@OrganisorAndLoginRequiredMixin()
def AgentUpdateView(request, pk):
    obj = Agent.objects.filter(pk=pk).first()
    if obj is None:
        return render(request, "404.html", {
            "Instance": pk
        })
    else:
        form = AgentModelForm(instance=obj.user)

错误: TypeError: 'OrganisorAndLoginRequiredMixin' 对象不可调用

【问题讨论】:

    标签: django mixins


    【解决方案1】:

    您需要为此使用class based view

    from django.views.generic.edit import UpdateView
    
    
    class AgentUpdateView(OrganisorAndLoginRequiredMixin, UpdateView):
        model = Agent
        template_name = 'template.html'
        form_class = AgentModelForm
    

    【讨论】:

      猜你喜欢
      • 2012-02-25
      • 1970-01-01
      • 2014-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多