私はカスタムQuerySetサブクラスを定義しようとしていて、django-model-utilsを使ってそれを私のモデルに添付しようとしています。上述したように、model_utils.managersからdjango-model-utilsを介してモデルにカスタムクエリーセットを添付する
がPassThroughManager
class FooQuerySet(models.query.QuerySet):
def my_custom_query(self):
return self.filter(...)
class Foo(models.Model):
# fields go here..
objects = PassThroughManager.for_queryset_class(FooQuerySet)
インポートそれturns out
その:以前のDjangoのバージョン(私は1.9を使用しています)では、 PassThroughManagerは、以下のコードによってこれを達成するために使用されました私は、コードを書き換えるために試みたdjango-model-utils 2.4でPassThroughManagerが削除されました。代わりに、Djangoの 組み込みのQuerySet.as_manager()および/またはManager.from_queryset() ユーティリティを使用してください。今のよう
(申し訳ありませんが、それはあまりにも愚かに見える場合、私は経験の数ヶ月は、まだいくつかをやっている期限を満たすために盲目的に考えて)
class FooQuerySet(models.query.QuerySet):
def my_custom_query(self):
return self.filter(...)
class Foo(models.Model):
# fields go here...
objects = QuerySet.as_manager(FooQuerySet)
私はTypeError: as_manager() takes exactly 1 argument (2 given)
で終わった。誰でも正しい構文で光を放つことができますか?
ダニエル、コードは動作しますが、奇妙なシンクタンクは、Eclipseが.filter、.ALLなどのキーワードの下に(一見無効な構文を示す)赤い下線を置くということですいくつかのモデル名。そして、最も驚くべきことに、コードはエラーなしでコンパイルされます!エディタのこのエラーサインはまだ刺激的です。これについてコメントできますか? –
実際はありません。静的解析は、Pythonのような動的言語ではうまく機能しません。できればそれをオフにしてください。 –