Python Django添加自定义权限
我面临在Django中添加自定义权限的问题。我的想法是,当授权用户时,如果它属于group1,则只显示group1的行,否则显示group2的行。数据库表中有一个group字段,它只包含两个值group1和group2。在管理面板中,我分别创建了两个组,并在这些组中包含了用户。我还创建了权限并将其分配给每个用户 我的模特Python Django添加自定义权限,python,django,Python,Django,我面临在Django中添加自定义权限的问题。我的想法是,当授权用户时,如果它属于group1,则只显示group1的行,否则显示group2的行。数据库表中有一个group字段,它只包含两个值group1和group2。在管理面板中,我分别创建了两个组,并在这些组中包含了用户。我还创建了权限并将其分配给每个用户 我的模特 class Employee(models.Model): DEPT =( ('Group1', 'Group1'), ('Group2', 'Group
class Employee(models.Model):
DEPT =(
('Group1', 'Group1'),
('Group2', 'Group2')
)
dept = models.CharField(max_length=100, choices=DEPT, default='')
fio = models.CharField(max_length = 100)
work_place = models.CharField(max_length = 150, default= '')
def __str__(self):
return self.fio
class Meta:
permissions = (
("view_museum", "can view museum"),
("view_ssoismi", "can view ssoismi"),
)
我的观点
def employee_list(request):
context = {'employee_list': Employee.objects.all()}
return render(request, "employee_register/employee_list.html", context)
如果我将上下文行更改为
context = {'employee_list': Employee.objects.filter(dept="Group1")}
我得到了期望的结果,但是如何使用django组等自动完成呢。
也许我做错了什么?
你知道下一步该怎么办吗?
谢谢试试这个:
context = {'employee_list': Employee.objects.filter(dept=request.user.group)}
我不确定您是如何让用户属于其中一个组的,但我猜您的用户模型上也有一个group
字段
在管理面板中,我分别创建了两个组,并在这些组中包含了用户
通过使用中的name\u过滤request.user.groups
来查询这些组名。然后使用中的dept\u,根据这些结果过滤Employee.objects
请注意,这假定管理员组名称的命名与Employee.dept
字段的命名完全相同。如果没有,请重命名管理员组以匹配Employee.dept
字段(包括大小写、空格等)
def员工名单(请求):
groups=[request.user.groups.filter中g的g.name(name_uuin=['Group1','Group2')]
上下文={'employee\u list':employee.objects.filter(dept\u in=groups)}
返回呈现(请求“employee\u register/employee\u list.html”,上下文)
我甚至没有自己创建用户组。我想我正在使用库中的标准用户组。请解释一下,我如何才能正确地完成这件事?我还有一个问题。如果一个用户属于这两个组,我如何才能将用户分配给这两个组?@Nikita_Zhurb