代码之家  ›  专栏  ›  技术社区  ›  Salman Ahmed

从具有多对多关系django的两个表中筛选数据

  •  3
  • Salman Ahmed  · 技术社区  · 7 年前

    我是python Django的新手。我有一个场景,我想从特定客户的插槽表中筛选出插槽数据。使用第三张桌子预约连接桌子。在约会表中,我存储与该客户关联的客户id和插槽id。如何筛选出与之相关的所有插槽?

    enter image description here

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

    1 回复  |  直到 4 年前
        1
  •  3
  •   Nagashayan    7 年前

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

    说出示例 客户id=1 然后就有了 插槽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\uu输入 与一起工作。

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