Несколько внешних ключей для одного отношения в Джанго - PullRequest
0 голосов
/ 12 июля 2011

У меня есть две модели 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)
    ...

Как видите, в Review есть 2 первичных ключа в классе GradeValues ​​и 2 внешних ключа. Предполагается, что они представляют собой отношение один ко многим между GradeValues ​​и Reviews. Но это не работает. Как заставить это? Я использую базу данных Oracle только для чтения, поэтому ничего не могу изменить.

1 Ответ

0 голосов
/ 12 июля 2011

Я не пытался делать то, что вы описываете, но я не думаю, что вам вообще нужно менять основную базу данных.

Вам необходимо явно создать отношение «многие ко многим» между 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

Где-то на этих страницах документации и в некоторых играх, думаю, вы могли бы найти свой ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...