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

我有两种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", 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。