当请求用户与创建者位于同一组然后访问时,而不是拒绝访问时,我正在寻找一种检查用户组的方法。
其背后的原因是,并非每个工作人员都可以编辑所有文稿。仅当工作人员与作者在同一组中时,工作人员才能编辑文章。
我的看法:
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
'''
尝试使用您的表单有效方法:
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)