我有以下型号:
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上找到的一切,我迷失了。