【发布时间】:2011-10-03 14:56:52
【问题描述】:
我有两个这样的 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 数据库,所以我无法修改任何内容。
【问题讨论】:
-
什么不起作用?而且一张表不能有两个主键。
-
当我输入例如Review.objects.all()[1].grade_type 我得到提升 self.field.rel.to.DoesNotExist
-
它确实存在吗?所需评论行的
TOC_KOD列中有什么?GradeValues表的主键是什么?是多列的吗? -
好的,看来我们的 db 有问题。但是,是的,主键是多列的。我很抱歉打扰。
-
Django does not support 多列pks。
标签: django django-models foreign-keys composite-primary-key