0

私はこのような2つの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の間の1対多の関係を構成することになっています。しかし、それは機能しません。これを強制する方法は?読み取り専用の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 に答える