0

次のクエリがあります。

Child.objects.filter(
    foreign_key_field__in=Parent.objects.filter(param=something))

ビューは次のように死にます:

invalid literal for int() with base 10: 'value of something'

はある種の をforeign_key_field期待しているように思えますが、実際の値を与えています。id私は何か間違ったことをしていますか?これは可能ですか?

目標は、親の を​​反復しchild_setて子で別のクエリ生成メソッドを呼び出すことを回避することです。これにより、返されるすべてのオブジェクトに対してクエリが生成されます。代わりに、ORM が一致するすべての子を 1 つのクエリで取得し、それらを通常どおり反復処理するように誘導したいと考えています。

4

1 に答える 1

1

問題は、あなたがやっていることです:

Child.objects.filter(parent__in=Parent.objects.filter(...))

また

Child.objects.filter(parent_id__in=Parent.objects.filter(...))

最初のバージョンは機能しますが、2 番目のバージョンでは「基数 10 の int() のリテラルが無効です」というエラーが表示されます。

于 2012-06-07T20:21:17.053 に答える