django queryset具有多个连接和过滤
我需要一份与所有者一起加入的工作的工作列表,
该行应包含: JOB_ID,JOB_WORKER_ROLE1,JOB_WORKER_ROLE2,JOB_WORKER_ROLE3,HOUSE_ID, *所有者_name,所有者_STATUS_NAME,所有者_ASSIGNED_USER,
鉴于房屋和所有者之间有许多关系,每个人都可以接受每个工作,每个所有者都可以接受多个结果。
class Worker:
name = models.CharField()
class OwnerStatus:
name = models.CharField()
class Owner:
name = models.CharField()
status = models.ForeignKey(OwnerStatus, related_name='owners')
assigned_worker = models.ForeignKey(Worker, related_name='assigned_user_owner')
class House:
owners = models.ManyToManyField(Owner, related_name='assets')
class Job:
house = models.ForeignKey(House, related_name='jobs')
worker_role1 = models.ForeignKey(Worker)
worker_role2 = models.ForeignKey(Worker)
worker_role3 = models.ForeignKey(Worker)
updated_at = models.DateTimeField(auto_now=True)
另外,我需要通过以下方式过滤:
- 所有者状态名称或所有者状态ID
- 所有者名称为字符串
- 所有者分配的工作名称为字符串,
我正在使用django 4.0.1带有Postgres
I need a list of jobs joined with houses joined with owners
Results row should contain:
job_id, job_worker_role1, job_worker_role2, job_worker_role3, house_id, *owner_name, owner_status_name, owner_assigned_user
Given that there is a many to many relationship between houses and owners it is acceptable to have multiple result rows for each job, with each owner.
class Worker:
name = models.CharField()
class OwnerStatus:
name = models.CharField()
class Owner:
name = models.CharField()
status = models.ForeignKey(OwnerStatus, related_name='owners')
assigned_worker = models.ForeignKey(Worker, related_name='assigned_user_owner')
class House:
owners = models.ManyToManyField(Owner, related_name='assets')
class Job:
house = models.ForeignKey(House, related_name='jobs')
worker_role1 = models.ForeignKey(Worker)
worker_role2 = models.ForeignKey(Worker)
worker_role3 = models.ForeignKey(Worker)
updated_at = models.DateTimeField(auto_now=True)
Also, I need to filter by:
- owner status name or owner status id
- owner name as string
- owner assigned worker name as string
I am using Django 4.0.1 with postgres
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用以下过滤:
所有者状态名称或所有者状态ID:
所有者名称为字符串
所有者分配的工作名称为字符串
You can filter with the following:
Owner status name or owner status id:
Owner name as string
owner assigned worker name as string