私信  •  关注

user1330734

user1330734 最近回复了
6 年前
回复了 user1330734 创建的主题 » django限制用户对相关对象的访问

有办法。

  1. 安装 django-crequest 包裹: https://github.com/Alir3z4/django-crequest#installing
  2. 创建一个 model.Manager 在models.py中并重写 get_queryset 方法

模特儿

...
from crequest.middleware import CrequestMiddleware

class UserOrganisationManager(models.Manager):
def get_queryset(self):
    request = CrequestMiddleware.get_request()
    return super().get_queryset().filter(id=request.user.organisation.id)


class Organisation(models.Model):
    name = models.CharField(max_length=255, 
                            unique=True, null=False, verbose_name="Name")
    ...
    objects = UserOrganisationManager()