Django admin super_用户和普通用户权限

Django admin super_用户和普通用户权限,django,admin,Django,Admin,我在管理页面中查看了所有事务模型。因此,基本上我在管理页面中添加了一个按钮,该按钮会将我重定向到包含所有事务的自定义html视图 我的视图.py def pdfs(request, *args, **kwargs): transactions = Transaction.objects.all() template_path = 'report.html' context = {"transactions":transactions} resp

我在管理页面中查看了所有
事务
模型
。因此,基本上我在管理页面中添加了一个按钮,该按钮会将我重定向到包含所有
事务的自定义html视图

我的
视图.py

def pdfs(request, *args, **kwargs):
    transactions = Transaction.objects.all()
    template_path = 'report.html'
    context = {"transactions":transactions}
    response = HttpResponse(content_type='Application/pdf')
    response['Content-Disposition'] = 'filename="reportss.pdf'
    template = get_template(template_path)
    html = template.render(context)
    pisa_status = pisa.CreatePDF(html, dest=response)
    if pisa_status.err:
        return HttpResponse('we had some errors' + html )
    return response
class Transaction(models.Model):
   user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
   chp_reference = models.CharField(max_length=50, unique=True)
   rent_effective_date = models.DateField(null=True, blank=True)
   income_period = models.CharField(max_length=11)
   group = models.OneToOneField(Group,on_delete=models.CASCADE,null=True)

   def __str__(self):
    return str(self.chp_reference)
   
   @property    
   def print_pdf(self):
    if self.complete:
        view_link = reverse('pdfss')
        mark_safe_param = '<a href= {} target="_blank" >Print Report</a>'.format(view_link)
        return mark_safe(mark_safe_param)
    return 'Insufficient Info.'
models.py

def pdfs(request, *args, **kwargs):
    transactions = Transaction.objects.all()
    template_path = 'report.html'
    context = {"transactions":transactions}
    response = HttpResponse(content_type='Application/pdf')
    response['Content-Disposition'] = 'filename="reportss.pdf'
    template = get_template(template_path)
    html = template.render(context)
    pisa_status = pisa.CreatePDF(html, dest=response)
    if pisa_status.err:
        return HttpResponse('we had some errors' + html )
    return response
class Transaction(models.Model):
   user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
   chp_reference = models.CharField(max_length=50, unique=True)
   rent_effective_date = models.DateField(null=True, blank=True)
   income_period = models.CharField(max_length=11)
   group = models.OneToOneField(Group,on_delete=models.CASCADE,null=True)

   def __str__(self):
    return str(self.chp_reference)
   
   @property    
   def print_pdf(self):
    if self.complete:
        view_link = reverse('pdfss')
        mark_safe_param = '<a href= {} target="_blank" >Print Report</a>'.format(view_link)
        return mark_safe(mark_safe_param)
    return 'Insufficient Info.'

最后,我将它们添加到
事务中的
列表显示=
。我想做的只是向一组用户显示
transaction
对象。因此,组中的用户只能打印此组创建的pdf。甚至是用户级别。我想知道如何做到这一点。谢谢

您可以使用所需的
@权限(“transaction.view”)
装饰器来装饰视图。然后将权限(从模型自动创建)分配给一个组,并将用户添加到该组,或者直接将权限授予用户。Django的超级用户状态意味着用户拥有所有权限,但没有明确授予这些权限。装饰师的评价总是正确的