Django中一个关系的多个外键
我有两种django型号,如下所示:Django中一个关系的多个外键,django,django-models,foreign-keys,composite-primary-key,Django,Django Models,Foreign Keys,Composite Primary Key,我有两种django型号,如下所示: class Review(models.Model): ... grade_value_order = models.ForeignKey('GradeValues', db_column="WART_OC_KOLEJNOSC", related_name="REC_WART_OC_FK") grade_type = models.ForeignKey('GradeValues', db_column="TOC_KOD", rela
class Review(models.Model):
...
grade_value_order = models.ForeignKey('GradeValues', db_column="WART_OC_KOLEJNOSC", related_name="REC_WART_OC_FK")
grade_type = models.ForeignKey('GradeValues', db_column="TOC_KOD", related_name="REC_WART_OC_FK")
class Meta:
...
managed = False
class GradeValues(models.Model):
grade_order = models.IntegerField(db_column="KOLEJNOSC", primary_key=True)
grade_type = models.ForeignKey('GradeType', db_column="TOC_KOD", primary_key=True)
...
如您所见,GradeValues类中有2个主键,Review中有2个外键。他们应该在成绩价值观和评价之间建立一对多的关系。但它不起作用。如何强制?我使用的是只读Oracle db,因此无法修改任何内容。我没有尝试执行您所描述的操作,但我认为您根本不必更改基础数据库 您需要在GradeValue和它本身[1]之间显式创建多对多关系,并将Review指定为中间表[2] [1] [2]
在那些文档页面的某个地方,我想你可能会找到答案。什么不起作用?一个表不能有两个主键。当我键入例如Review.objects.all()[1]时,grade_类型我得到raise self.field.rel.to.doesnotexist,它是否存在?所需审阅行的
TOC\u KOD
列中有什么内容?GradeValues
表的主键是什么?是多列的吗?好的,看来我们的数据库有问题。但是是的,主键是多列。很抱歉打扰您。Django多列pks。