【问题标题】:Django, connect one field with multiple modelsDjango,将一个字段与多个模型连接起来
【发布时间】:2020-02-18 15:40:05
【问题描述】:

我猜这是一个“正常”的问题。我想将模型 C 与不同的模型 A、B、..连接起来。

Model A "buildings"
 - time_built
 - description
 - adress
 - architects[]=Model C
 - places

Model B "photos":
 - time_taken
 - title
 - architects[]=Model C
 - places

Model C "architects"
- title
- time_born
- website
- items[]=Model A+Model B

因此项目应该 m:n 连接到模型 A 或 B 以进行查询,例如“通过加利福尼亚的建筑物查找建筑师”。模型 A 和 B 可以有多个架构师。

有可能在 Django 中实现这样的功能吗?我想使用中间模型,但据我了解,它对我也没有帮助。

【问题讨论】:

    标签: django many-to-many field


    【解决方案1】:

    是的,Django 有Many-to-many relationships

    Buildings,放

        architects = models.ManyToManyField(Architect)
    

    Photos,放

        architects = models.ManyToManyField(Architect)
    

    这将处理关系,并通过创建迁移文件并运行它,将自动创建数据库表(它们应该是 5 个)。

    【讨论】:

    • 我知道这一点。但是我无法查询在德国建造建筑物的建筑师?
    • Buildings.objects.filter(country_name='Germany').architects 会做到这一点
    • 好吧,很高兴知道,但它也不会在 photos.places 中搜索?
    • 你也可以在照片中做同样的事情。几乎所有你可以用普通 SQL 做的事情
    • 我的意思是同时?但我想我是从错误的关系方面考虑的。
    【解决方案2】:

    好吧,好像有两种解决方案:

    【讨论】:

      猜你喜欢
      • 2018-06-17
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 2017-01-31
      • 2021-09-16
      • 1970-01-01
      • 2011-06-22
      • 2013-09-26
      相关资源
      最近更新 更多