如果在经过身份验证的用户的 django 视图中跳过了语句



晚上好,

有一个视图,仅当我以超级用户身份登录时才有效,而不是以"部门主管"身份登录

def detail_employee(request, pk, employee_pk):
    department = get_object_or_404(Department, pk=pk)
    print(department.supervisor, request.user.username)
    if request.user.username == department.supervisor or request.user.is_superuser:
        employee = get_object_or_404(Employee, department__pk=pk, pk=employee_pk)
        review = get_object_or_404(Result, pk=pk)
        print(employee, review.id)
        return render(request, 'review_employee.html', {'employee': employee})
return redirect('dept_employees', pk=department.pk)

我使用用户记录的打印进行验证是 == 部门主管,但跳过了 if 语句,如果 im 与超级用户一起记录,它工作正常。

试图看看我在这里做错了什么。

谢谢

编辑添加模型。

    class Department(models.Model):
        name = models.CharField(max_length=75, unique=True)
        description = models.CharField(max_length=100)
        supervisor = models.ForeignKey(User, related_name='supervisor', on_delete=models.CASCADE)

按如下方式更改if条件,/

if request.user == department.supervisor or request.user.is_superuser:


request.user.username 是一种str类型,其中 as department.supervisourUser 类对象

最新更新