我已经列出了属于名为Manager
的群组的用户的列表视图。
我已经建立了一个链接来编辑这些用户。
链接如下:http://localhost:8000/en/manager/edit/12
所以这是关于"编辑用户编号12"。
如果您手动将12
更改为1
,它就有效......那么正确确保您正在编辑的用户属于群组Manager
的方法是什么? ?
如果用户不属于get_object
群组,我已尝试覆盖None
并返回Manager
,但它没有意义:
def get_object(self, queryset=None):
group = Group.objects.get(name="Manager")
try:
return User.objects\
.filter(groups__in=[group])\
.get(pk=self.kwargs.get('pk'))
except User.DoesNotExist:
return None
这样做的正确方法是什么?
答案 0 :(得分:0)
我已经覆盖了这样的get()
方法:
class ManagerUpdateView(LoginRequiredMixin, generic.UpdateView):
model = User
form_class = RegisterManagerForm
template_name = 'crud/manager/update.html'
def get(self, request, *args, **kwargs):
group = Group.objects.get(name="Manager")
try:
User.objects.filter(groups__in=[group])\
.get(pk=self.kwargs.get('pk'))
except User.DoesNotExist:
return redirect(reverse_lazy('manager_list'))
return super(ManagerUpdateView, self).get(request,
*args, **kwargs)