Djangoのドキュメントはこれについて非常に明確です。特に、Djangoの世界に慣れていない場合は、暖かい毛布のようにドキュメントに身を包む必要があります。時間がある場合はそれらを読んでください(時間を作ってみてください)が、できない場合は、「django」とあなたが抱えている問題が何であれ、Googleで検索してください。99%の場合、最初の結果はDjangoドキュメントのページであり、必要な情報が正確に含まれています。
そうは言っても、ドキュメントはこの問題について述べています:
カスタムManagerオブジェクトを使用する場合、(モデルで定義されている順序で)最初に遭遇するManagerDjangoには特別なステータスがあることに注意してください。Djangoは、クラスで定義された最初のマネージャーを「デフォルト」マネージャーとして解釈し、Djangoのいくつかの部分(dumpdataを含む)はそのマネージャーをそのモデル専用に使用します。そのため、get_query_set()をオーバーライドすると、操作するオブジェクトを取得できなくなる状況を回避するために、デフォルトマネージャーの選択に注意することをお勧めします。(強調鉱山)
それはまさにあなたが経験していることです。上記の引用の最初の文をもう一度見てください。Djangoは、最初に遭遇したマネージャーを、管理者を含むその機械のさまざまな部分の「デフォルト」マネージャーとして使用します。したがって、解決策は、カスタムマネージャーの前にフィルター処理されていないマネージャーを追加することです。そのための最善の方法は、独自のマネージャーを提供しない場合にDjangoが自動的に追加する標準マネージャーを使用することです。
objects = models.Manager()
product_manager = ProductManager()
終わり。管理者は、最初の標準マネージャーをデフォルトとして使用するため、すべての製品を一覧表示します。