我有两个像这样的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和Reviews之间保持一对多的关系。但它不起作用。怎么逼这个?我使用只读Oracle数据库,所以我无法修改任何内容。
答案 0 :(得分:0)
我没有尝试过您所描述的内容,但我认为您根本不需要更改底层数据库。
您需要在GradeValues与其自身[1]之间明确创建多对多关系,并将Review指定为中间表[2]
[2] https://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationships
在那些文档页面和某些游戏中的某个地方,我想你可能会找到答案。