Django - 跨越关系

时间:2017-08-21 17:47:34

标签: django authorization

我有以下型号:

class User(AbstractUser):
    pass

class Employer(models.Model):
    company_name = models.CharField(max_length=100, ...)
    ...

class Employee(models.Model):
    employee_name = models.OneToOneField(User, unique=True)
    employer = models.ForeignKey(Employer)
    ...

class Psa(models.Model):
    owner = models.ForeignKey(Employer)
    ...

每个雇主拥有几个Psa。给定雇主的员工应该能够查看所有雇主拥有的Psa。

我可以编写一个查询来获取请求中的employer_id:

def get_queryset(self, *args, **kwargs):
    employee = Employee.objects.get(employee_name_id = self.request.user.id)
    employer = employee.employer

使用此id,我可以在python shell中查询Psa,以获取登录用户的正确Psa列表。

我不明白的是如何编写查询集以便通用视图(ListView,DetailView ...)返回过滤后的Psa列表。

我知道这一定是非常明显的,但经过几天的捣乱和阅读我在SO / Django上找到的一切,我迷失了。

0 个答案:

没有答案