我希望管理员能够根据对所述对象可用的权限,将 django-guardian 权限分配/删除给一个人以及它们与项目对象的关系。
屏幕看起来像这样:
该项目在 URL 中提供,视图可以看到。我创建了一个自定义表单,它将项目作为输入,如下所示:
from django import forms
from django.contrib.auth.models import User
from guardian.shortcuts import get_perms_for_model
class ProjectAssignmentForm(forms.Form):
def __init__(self, *args, **kwargs):
self.p = kwargs.pop('project')
self.perms = [(x, x) for x in get_perms_for_model(self.p)]
super(ProjectAssignmentForm, self).__init__(*args, **kwargs)
self.fields['permission'].widget = forms.CheckboxSelectMultiple()
user = forms.ModelChoiceField(queryset=User.objects.all())
permission = forms.ChoiceField(choices=self.perms)
这目前给了我一个 NameError,我想是因为我在方法self
之外使用__init__
。我究竟做错了什么?