我有一个Postgres数据库,有3个表,其中包含数据和它们在Django中的模型。我无法控制这些表格的填写方式。但我需要给他们增加关系。你知道吗
在MsSQL、Oracle或MySql中这对我来说都不是问题。但我在这里很困惑。你知道吗
class Keywords(models.Model):
id = models.AutoField(primary_key=True)
keyword = models.CharField(unique=True, max_length=250)
class Mapping(models.Model):
id = models.AutoField(primary_key=True)
keyword = models.CharField(max_length=250)
videoid = models.CharField(max_length=50)
class Video(models.Model):
videoid = models.CharField(primary_key=True, max_length=50)
最后,我找到了一个解决办法:
要将关系添加到具有奇怪列名的现有表并键入,最好使用到\字段和db \ u列。在这种情况下,Django不会尝试为关系创建标准id列。你知道吗
使用inspectdb从db表生成模型。你知道吗
关系
然后可以删除映射模型,该关系的表由Django生成。你知道吗
如果要保留已关联实例的数据,请使用映射模型中ManyToManyField的
through
键参数。你知道吗在用于与模型
Keywords
和Video
关联的模型Mapping
中,可以进行如下更改:class Mapping(models.Model):
您也不需要为模型定义id,因为Django本身创建了一个自动生成的主键id字段。你知道吗
相关问题 更多 >
编程相关推荐