Django通用视图,检查请求是否与创建者在同一组中

问题描述 投票:0回答:1

当请求用户与创建者位于同一组然后访问时,而不是拒绝访问时,我正在寻找一种检查用户组的方法。

其背后的原因是,并非每个工作人员都可以编辑所有文稿。仅当工作人员与作者在同一组中时,工作人员才能编辑文章。

我的看法:

class EditArticleView(LoginRequiredMixin, UpdateView):
    model = Article
    message = _("Your Article has been updated.")
    form_class = ArticleForm
    template_name = 'articles/article_update.html'


def form_valid(self, form):
    form.instance.user = self.request.user

    return super().form_valid(form)

def get_success_url(self):
    messages.success(self.request, self.message)
    return reverse('articles:list')

'''
def get_queryset(self):
    queryset = super(EditArticleView, self).get_queryset()
    queryset = queryset.filter(user=self.request.user)
    print(self.request.user)
    return queryset
'''
django python-3.x python-3.7 django-generic-views django-2.2
1个回答
0
投票

尝试使用您的表单有效方法:

def form_valid(self, form):
    if self.request.user.groups.filter(name='Member').exists():
        form.instance.user = self.request.user
    else:
       raise Http404
    return super().form_valid(form)
© www.soinside.com 2019 - 2024. All rights reserved.