かなり長い結合をしようとしていますが、djangoが最後の層を処理できないようです。私はそれが間違っているか、これを回避する方法はありますか?Djangoと複数の結合
Models.py
class A(models.Model):
object_id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=50)
class B(models.Model):
class_A_object = models.ForeignKey(A, on_delete=models.PROTECT)
value = models.CharField(max_length=50)
class C(models.Model):
class_B_object = models.ForeignKey(B, on_delete=models.PROTECT)
class D(models.Model):
value= models.IntegerField(primary_key=True)
class_C_object = models.ForeignKey(C, on_delete=models.PROTECT)
私はその後時に関連するクラスのクラスDの値を選択するオブジェクト名= ABCをしようとしています。
D.objects.filter(class_C_object__class_B_object__class_A_object__name='ABC')
これは失敗します。pycharmが自動完成を拒否し、実行した場合、名前が定義されていないというエラーが表示されます。
ただし、1つのレイヤーをドロップすると機能します。
D.objects.filter(class_C_object__class_B_object__value='ABC')
私が参加するの最大数を言及するすべての文書を発見していないが、限界がここにありますようにそれは感じています。
誰でも知っていますか?そうであれば、これを回避するにはどうすればよいでしょうか?
データベースは私の外部にあり、変更することはできません。私は現時点で唯一のうまくいくまともな回避策は、カーソルを直接使用して手でSQLを書くことです。しかし、これは多くの理由で理想的ではありません。
ご協力いただければ幸いです。
種類よろしく、 ピーター
正確なエラートレースバックを投稿してください – itzMEonTV