2

計画不足のため、モデルの後の段階で「アクティブ」と呼ばれるブール型フィールドを導入しなければならない状況に陥りました。アイデアは、Db のクエリに対してアクティブな要素のみを true として返すことです。可能な1つの方法は、モデルのすべてのクエリを編集して、次のようなものを追加することです

Q(active==true)

これには多くの変更が必要です。「クラスメタ」を使用して、アクティブセットがtrueの要素に対してのみDbのクエリが実行されるように順序を設定できる可能性はありますか?

class Db(models.Model):
   url = models.TextField()
   description = models.TextField(blank=True, null=True)
   active = models.BooleanField()(initial=True)

   class Meta:
       ordering = ['-id']
4

2 に答える 2

1

カスタムのデフォルトオブジェクトマネージャーを実装し、基準に応じてフィルターで除外できます。

カスタムマネージャーを参照してください。ただし、このことに注意してください。djangoは、デフォルトのオブジェクトマネージャーをオーバーライドするよう警告するため、このタイプのマネージャーサブクラスの結果をフィルターで除外しないでください。

于 2012-07-19T12:27:46.360 に答える