如何允许Django中的用户查看同一模型中的特定数据

如何允许Django中的用户查看同一模型中的特定数据,django,permissions,Django,Permissions,在Django中授予管理员用户权限时,我面临一个问题,即如何限制用户只查看同一模型中特定于用户的数据。我的意思是,如果两个用户可以向同一个模型添加数据,那么如何限制他们仅访问该数据 在该模型中,您需要指定哪个用户插入该值。若您有用户模型,那个么您可以将新字段作为用户添加到您的模型中,即ForeignKey字段 当您使用user属性插入数据时,您可以使用user(user.id)轻松筛选数据 例如,如果您有客户模型,您可以使用用户id(在本例中为商户id)过滤该值: 我们的模型如下所示: clas

在Django中授予管理员用户权限时,我面临一个问题,即如何限制用户只查看同一模型中特定于用户的数据。我的意思是,如果两个用户可以向同一个模型添加数据,那么如何限制他们仅访问该数据

在该模型中,您需要指定哪个用户插入该值。若您有用户模型,那个么您可以将新字段作为用户添加到您的模型中,即ForeignKey字段

当您使用user属性插入数据时,您可以使用user(user.id)轻松筛选数据

例如,如果您有客户模型,您可以使用用户id(在本例中为商户id)过滤该值:

我们的模型如下所示:

class Customer(models.Model):

merchant = models.ForeignKey(Merchant, on_delete=models.DO_NOTHING)
name = models.CharField(max_length=128, null=True)
surname = models.CharField(max_length=128, null=True)
email = models.EmailField(max_length=255, null=True)
您可以定义如下权限:

class Task(models.Model):
...
class Meta:
    permissions = [
        ("change_task_status", "Can change the status of tasks"),
        ("close_task", "Can remove a task by setting its status as closed"),
    ]
您可以通过以下方式进行检查:

user.has_perm('app.close_task')

希望能有所帮助,

先生,我正在考虑由管理员添加给那些用户的管理员权限。在我的项目中,users works是一个子管理员。如果子管理员向模型中添加了内容,那么如何限制其他用户(子管理员)访问该帖子。而不是访问自己的帖子。自定义权限。
user.has_perm('app.close_task')