【问题标题】:Using 'old' database with django在 django 中使用“旧”数据库
【发布时间】:2010-10-15 05:12:15
【问题描述】:

我在 Django 中使用手工构建的 (Postgres) 数据库。使用“inspectdb”,我能够自动为其创建模型。问题是某些表有多个主键(对于多对多关系)并且它们不能通过 Django 访问。

访问这些表的最佳方式是什么?

【问题讨论】:

    标签: python django


    【解决方案1】:

    截至目前(直到 v1.0.2),在 Django 的 ORM 中无法使用复合主键。

    我只能想到三种解决方案/变通方法:

    1. 在 github 上有一个 django 的 fork 带有复合 pk 补丁,您可能想尝试一下。
    2. 您可以将SQLAlchemy 与 Django 一起使用。
    3. 您必须向这些表中添加单个字段主键字段。

    【讨论】:

    • +1:修复你的数据库——任何表中都不应该有多个主键。
    • @S.Lott:嗯,这种评论只是想激起整个自然键与代理键的争论。
    • 选项 3 可能是最简单的......反正它是一个旧数据库
    【解决方案2】:

    Django 确实支持many-to-many relationships。如果您想使用辅助表来管理这种关系,ManyToManyField 需要一个 through 参数来指定要使用的表。你不能用这种方式对任何非常复杂的东西建模,但它对大多数简单的应用程序都有好处。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-30
      相关资源
      最近更新 更多