我有2个问题:
1)我正在显示带有其用户组的用户列表,并获得用户组名称:]>在模板中使用{{instance.groups.all}}。有什么想法只显示我的群组吗?
2)对于我的更新用户表单,我遇到了一个错误,并且我不知道如何以及在何处解决该问题。
错误:updateUserView()得到了意外的关键字参数'id'
forms.py
class UpdateForm(UserChangeForm):
is_active = forms.BooleanField()
Group = [('Viewers', 'Viewers'), ('Editors', 'Editors'), ('Creators', 'Creators'), ]
group_name = forms.ChoiceField(choices=Group)
class Meta:
model = User
fields = ('email', 'is_active', 'group_name', )
views.py
def updateUserView(request):
if request.method == 'POST':
form = UpdateForm(request.POST, instance=request.user)
if form.is_valid():
user = form.save()
group = Group.objects.get(name=request.POST.get('group_name'))
user.groups.add(group)
return redirect('accounts:users')
else:
form = UpdateForm(instance=request.user)
return render(request, 'accounts/update_user.html', {'form': form})
class UserView(LoginRequiredMixin, GroupRequiredMixin, ListView):
template_name = 'accounts/display_users.html'
group_required = ['Creators']
queryset = User.objects.filter(is_active=True)
答案 0 :(得分:0)
代替使用 组= Group.objects.get(名称= request.POST.get('group_name')) 尝试使用 组= form.cleaned_data.get('组')
答案 1 :(得分:0)
要解决错误error: updateUserView() got an unexpected keyword argument 'id'
您需要将ID传递给视图。因为您的网址可能像这样'/user/<int:id>/'
def updateUserView(request, id):
if request.method == 'POST':
........