【问题标题】:Django model without primary and unique field没有主要和唯一字段的 Django 模型
【发布时间】:2014-01-24 12:32:31
【问题描述】:

我有一个数据库表:

  url_id( INT(11) )  |   monitor_id( (INT(11) )
 --------------------+--------------------------
        1            |         1
        1            |         2
        1            |         3
        2            |         2

等等。 url_idmonitor_id 字段都不是唯一的,更重要的是,它们是其他表(表 urls 和表 monitors)的外键。所以我不能改变数据库结构。在我的 Django 模型文件中,我为此表创建了一个模型类:

class MonitorForUrl(models.Model):
    url = models.ForeignKey(Url, primary_key=True)
    monitor = models.ForeignKey(Monitor)

    class Meta:
        db_table = 'monitors_for_url'

我将primary_key 参数设置为true,因为如果我不设置自己的主键字段,Django 会为主键创建默认的*model_name*_id 字段。 DB中没有这样的字段,所以我将primary_key设置为true。通过这种方式,我无法创建一些具有相似 url_id 值的行,因为它是主键。我可以告诉 Django 在不设置 primary_key 选项的情况下不要创建默认主键字段,或者您可以建议我一些其他方法来解决我的问题吗?

【问题讨论】:

    标签: python django


    【解决方案1】:

    不要为此创建模型。相反,在 Url 和 Monitor 模型中添加 many-to-many relation

    Django 会为你维护这个中间表。

    【讨论】:

      猜你喜欢
      • 2014-01-16
      • 1970-01-01
      • 2012-11-05
      • 2018-10-15
      • 1970-01-01
      • 2023-03-27
      • 2015-03-06
      • 2016-04-08
      相关资源
      最近更新 更多