0

我有两个这样的 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 个外键。他们应该在 GradeValues 和 Review 之间建立一对多的关系。但它不起作用。这要怎么强求?我使用只读的 Oracle 数据库,所以我不能修改任何东西。

4

1 回答 1

0

我没有尝试做你所描述的事情,但我认为你根本不需要更改底层数据库。

您需要在 GradeValues 与其自身[1] 之间显式创建多对多关系,并将 Review 指定为中间表 [2]

[1] https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ManyToManyField.symmetrical

[2] https://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationships

在那些文档页面的某个地方和一些玩耍的地方,我想你可能会找到你的答案。

于 2011-07-12T13:13:35.673 回答