从具有多对多关系的两个表中过滤数据django

时间:2018-04-05 17:10:25

标签: django database python-3.x django-models django-queryset

我是新的python django。我刚刚来到这个场景,我想从特定客户的槽表中过滤掉槽的数据。使用第三个表约会连接表。在约会表中,我存储与该客户​​关联的客户ID和槽ID。如何过滤掉客户与之相关的所有插槽?

enter image description here

这是表格的结构及其相互关系。请帮我解决一下。我知道通过在SQL中使用join我获取数据。但我想过滤python django中的数据,以便我如何在django中应用连接来过滤数据。我google了很多但没有得到任何正确的答案。请在答案中提供正确的解释。

1 个答案:

答案 0 :(得分:0)

据我了解,您想列出特定客户的所有插槽。

例如 cust_id = 1 ,然后在约会表中与该客户关联 slot_id 1,2,3

我会做这样的事情,

# Retreive all slot id for the customer with id = 1
slot_ids = Appointment.objects.filter(cust_id=1).values('id')

# Get all slots related to the customer 
slots = Slot.objects.filter(id__in=slot_ids)

请记住,您应该使用值()并检索 id__in 的特定列。

点击此处查看更多信息https://docs.djangoproject.com/en/2.0/ref/models/querysets/