Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django添加自定义权限_Python_Django - Fatal编程技术网

Python Django添加自定义权限

Python Django添加自定义权限,python,django,Python,Django,我面临在Django中添加自定义权限的问题。我的想法是,当授权用户时,如果它属于group1,则只显示group1的行,否则显示group2的行。数据库表中有一个group字段,它只包含两个值group1和group2。在管理面板中,我分别创建了两个组,并在这些组中包含了用户。我还创建了权限并将其分配给每个用户 我的模特 class Employee(models.Model): DEPT =( ('Group1', 'Group1'), ('Group2', 'Group

我面临在Django中添加自定义权限的问题。我的想法是,当授权用户时,如果它属于group1,则只显示group1的行,否则显示group2的行。数据库表中有一个group字段,它只包含两个值group1和group2。在管理面板中,我分别创建了两个组,并在这些组中包含了用户。我还创建了权限并将其分配给每个用户

我的模特

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