【问题标题】:Filter data from two tables having many to many relation django从具有多对多关系 django 的两个表中过滤数据
【发布时间】:2018-09-15 14:29:09
【问题描述】:

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

这是表格及其相互关系的图表。请帮我解决它。我知道通过在 SQL 中使用 join 可以获得数据。但是我想在 python Django 中过滤数据,所以我如何在 Django 中应用连接来过滤数据。我google了很多,但没有得到任何正确的答案。请在您的回答中提供适当的解释。

【问题讨论】:

  • 您可以发布您的models.py 文件吗?

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


【解决方案1】:

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

假设示例 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)

请记住,您应该使用 values() 并检索特定列以供 id__in 使用。

在这里查看更多信息https://docs.djangoproject.com/en/2.0/ref/models/querysets/

【讨论】:

    猜你喜欢
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 2015-10-21
    • 2018-10-05
    • 2021-03-19
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多