私のDjangoプロジェクトでは、データベースのすべてのテーブルにis_active
ブール型のカラムがあります。私またはフレームワークがデータベースにアクセスするたびに、アクティブなレコードのみを表示します。これを達成するための標準的な方法は何ですか?確かに、すべてのクエリでis_active
をチェックしたくありません。アクティブなレコードのみを選択するdjangoクエリ
0
A
答えて
2
をジャンゴdocumentaionを確認してくださいこれを行う最も簡単な方法は、このように、カスタムモデルマネージャを作成することです
class MyModel(models.Model):
objects = models.Manager()
active = OnlyActiveManager()
次に、このように使用します。
foo = MyModel.active.all()
デフォルトのマネージャー(objects
)の代わりに使用することもできますが、カスタムクエリを実行してアクティブでないすべてのレコードを取得する必要があります。あなたのモデルのためのマネージャークラスを記述することができます
0
これは、djangoモデルマネージャを使用して行うことができます。
class OnlyActiveManager(models.Manager):
def get_queryset(self):
return super(OnlyActiveManager, self).get_queryset().filter(is_active=True)
を次に、あなたのモデルに追加:
0
、サンプルモデルマネージャは以下のとおりである、より多くのあなたは、Djangoの公式ウェブサイトに
class MediaManager(models.Manager):
def get_queryset(self):
return MediaQuerySet(self.model, using=self._db)
def active(self):
return self.filter(is_active=True)
class Media(models.Model):
(..model fields..)
objects = MediaManager()
を参照することができため、クエリは
media = Media.objects.active()
関連する問題
- 1. アクティブなレコードのクエリのクラスメソッド
- 2. アクティブな選択パラメータ
- 3. CodeIgniterのアクティブなレコード、IF文の追加 - 私はこのクエリを持っている>を選択し()関数
- 4. 異なるレコードを選択
- 5. 「より完全な」重複レコードを選択するクエリ
- 6. jpaアクティブなレコードを読み取る
- 7. レールのMysqlクエリがアクティブなレコード
- 8. Ruby on railsアクティブなレコードのクエリ
- 9. ほとんどの更新されたレコードを選択するクエリを選択
- 10. 新しく追加されたレコードのみを選択するクエリ
- 11. くぼみフレームワーク、選択クエリ
- 12. クエリ結果から最新のレコードを選択する
- 13. レコードを選択
- 14. レコードの選択
- 15. 異なるレコードを選択するためのLinqクエリと異なるレコードのカウント数
- 16. クエリでNOT MAX()であるレコードを選択する方法
- 17. アクティブ選択肢リリファレンスパラメータ
- 18. 特定の順序でアクティブな列のみを選択するSQL Serverストアドプロシージャ
- 19. アクティブなラジオボタンの選択の有効化
- 20. アクティブなアイテムリストで非アクティブな選択アイテムを表示
- 21. PSQLユニークなレコードのみを選択してください
- 22. SQL Serverクエリでレコード範囲を動的に選択する
- 23. レコード間を3年連続で選択するSQLクエリ
- 24. SQLクエリ - カウント条件に基づいてレコードを選択する
- 25. Eclipse PDT - アクティブなインデントガイド選択をハイライト
- 26. レコードの半分のみを選択する
- 27. SQL - WHERE句で最新のレコードのみを選択する
- 28. チェックボックスモデルで選択されたレコードを選択すると、残りのレコードの選択を解除します。
- 29. 検索でアクティブなレコードのみを表示する - CRM
- 30. 句、異なる選択クエリ
使用モデルのようにする必要がありますマネージャー – Thameem