django抛出错误:列名无效';id';(SQL SERVER)
我尝试使用django创建一个web应用程序,并连接到SQL Server数据库。我用来以django形式显示数据的表由2列组成。它们都是外键,并且一起构建表的主键 创建表[dbo]。[MyTable]([ID_Field1][int]不为空, [ID_Field2][int]不为空,约束[PK_Movies2Genres]主 键聚集([ID\U字段1]ASC,[ID\U字段2]ASC)和(PAD\U索引= 关闭,统计\u NORECOMPUTE=OFF,忽略\u DUP\u KEY=OFF, 在[PRIMARY]上允许第行锁定,在[PRIMARY]上允许第页锁定 [主要] 使用复选添加约束[FK_Field2]更改表[dbo].[MyTable] 外键([ID_字段2])引用[dbo]。[Table2]([ID_字段2]) ALTER TABLE[dbo].[MyTable]检查约束[FK_Field2] 使用复选添加约束[FK_Field1]更改表[dbo].[MyTable] 外键([ID_Field1])引用[dbo]。[Table1]([ID_Movie]) ALTER TABLE[dbo].[MyTable]检查约束[FK_Field1] 现在,django显然无法创建与这种sql表结构对应的模型,也就是说,它无法创建包含多个字段的主键。相反,它在2列中的一列上设置主键,并在它设置的模型类的meta部分中设置主键 共同唯一=('id\u field1','id\u field2'),) 完整模型: 类MyTable(models.Model): 然而,这是django inspectdb告诉我的。我知道django在没有定义主键的情况下会自动创建一个名为id的字段。虽然定义了主键,但这里似乎是这样。知道如何处理这个问题吗?使用:django抛出错误:列名无效';id';(SQL SERVER),django,django-models,django-forms,django-templates,django-views,Django,Django Models,Django Forms,Django Templates,Django Views,我尝试使用django创建一个web应用程序,并连接到SQL Server数据库。我用来以django形式显示数据的表由2列组成。它们都是外键,并且一起构建表的主键 创建表[dbo]。[MyTable]([ID_Field1][int]不为空, [ID_Field2][int]不为空,约束[PK_Movies2Genres]主 键聚集([ID\U字段1]ASC,[ID\U字段2]ASC)和(PAD\U索引= 关闭,统计\u NORECOMPUTE=OFF,忽略\u DUP\u KEY=OFF,
如果customer_id与模型客户相关,而company与模型公司相关,我将如何定义compositeForeign键?复合键只使用一个模型作为参数,对吗?对不起,我不知道!我和你们有着同样的问题,对我来说,复合钥匙不是最好的解决方案,我把它停在一边,我正在清除公司里的其他火灾。如果你有消息,请告诉我!我的解决方法是添加另一个id字段。我对这个解决方案不是很满意,但django似乎不支持这种模型结构。
id_field1 = models.ForeignKey(Table1, on_delete=models.DO_NOTHING, db_column='ID_Field1')
id_field2 = models.ForeignKey(Table2, on_delete=models.DO_NOTHING, db_column='ID_Field2')
class Meta:
managed = False
db_table = 'MyTable'
unique_together = (('id_field1', 'id_field2'),)
class Customer(models.Model):
company = models.IntegerField()
customer_id = models.IntegerField()
name = models.CharField(max_length=255)
address = CompositeForeignKey(Address, on_delete=CASCADE, to_fields={
"tiers_id": "customer_id",
"company": LocalFieldValue("company"),
"type_tiers": RawFieldValue("C")
})
class Meta(object):
unique_together = [
("company", "customer_id"),
]
class Contact(models.Model):
company_code = models.IntegerField()
customer_code = models.IntegerField()
surname = models.CharField(max_length=255)
# virtual field
customer = CompositeForeignKey(Customer, on_delete=CASCADE, related_name='contacts', to_fields={
"customer_id": "customer_code",
"company": "company_code"
})