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的超级用户状态意味着用户拥有所有权限,但没有明确授予这些权限。装饰师的评价总是正确的