【发布时间】:2021-06-18 17:35:04
【问题描述】:
如果 ifAdmin(uProject 模型中的对象)== True,我希望允许用户编辑项目页面。我目前正在尝试使用 @user_passes_test 呈现视图以更新项目,但遇到了困难。我正在从 main.models 获取 uProjects,并且正在使用 projects.views。这是我的代码。
def admin_check(uProjects):
return uProjects.ifAdmin = True
@user_passes_test(admin_check)
def update(request): etc, etc, etc
models.py
class uProjects(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
project = models.ForeignKey(Project, on_delete=models.CASCADE)
ifAccepted = models.BooleanField(null = True, blank=False, default=False)
#ifLeader = models.BooleanField(null = False, blank=False)
ifAdmin = models.BooleanField(null = True, blank=False, default=False)
title = models.CharField(max_length=100, null=False, blank=False)
def __str__(self):
return self.user.username + ',' + self.project.name
困难在于我试图让 admin_check 与 uProjects 一起工作,而不是 User 模型。我也在尝试查看 ifAdmin == True,但我上面所做的方式会导致错误。错误是“用户对象没有属性ifAdmin”
【问题讨论】:
-
请详细说明一下,有什么困难...??
-
@ShivendraPratapKushwaha 困难在于我试图让 admin_check 与 uProjects 一起工作,而不是 User 模型。我也在尝试查看 ifAdmin == True,但我上面所做的方式会导致错误。错误是“用户对象没有属性 ifAdmin”
-
可以分享模型吗?
-
@ruddra 我刚刚编辑了主帖并将其添加到那里
-
@AndrewBregman 你在做
uProjects.ifAdmin = True而不是uProjects.ifAdmin == True
标签: python django permissions