【问题标题】:Django many-to-many query matching all related fieldsDjango多对多查询匹配所有相关字段
【发布时间】:2020-06-08 01:06:57
【问题描述】:

我在 django 中通过多对多关系连接了两个模型。

class BuildingMapping(models.Model):

    name = models.CharField(max_length=1000, null=False)
    buildings = models.ManyToManyField(
        Building, related_name="mapping"
    )

class Building(models.Model):
    function = models.CharField(
        max_length=1000, blank=True, null=True
    )

Function 是一个字符串,包含一个或多个标识符,除以“/” e。 G。 “1300”、“1300/2200”、“1300/2230/7500”、...

我现在想执行一个查询,它只获取 all Buildings 的功能相同的 BuildingMapping 实例。我尝试了以下方法,但这也会返回 BuildingMapping 实例,其中只有一个建筑物具有“1300”作为函数。

BuildingMapping.objects.filter(buildings__function="1300")

谢谢!

【问题讨论】:

标签: python django many-to-many django-select-related


【解决方案1】:

如果我理解正确,您希望函数字段包含“1300”。如果是对的: BuildingMapping.objects.filter(buildings__function__contains="1300")

【讨论】:

  • 我的理解是他想从 id 列表中获得具有所有所需的Building-instances 的BuildingMapping
【解决方案2】:

我看到您正在尝试获取与 1300 匹配的所有结果。您所做的是完全匹配

强文本

你需要使用icontains(不区分大小写)或contains(区分大小写)来获取所有匹配的数据

【讨论】:

    猜你喜欢
    • 2019-04-23
    • 1970-01-01
    • 2022-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多