0

これを簡単に実行できるかどうかはわかりませんが、モデルに関連するすべてのクエリのフィールドにフィルターを自動的に追加する必要があります。Node.js というモデルに「アクティブ」なブール型プロパティを追加しました。

例えば

Node.query()

フィールド Node.active が True に設定されたすべてのノードを返し、active フィールドが false に設定されたノードを無視する必要があります。他の指示はありません。

何らかの方法または同様の方法で関数をオーバーライドすることは可能ですか? 私はPythonもアプリエンジンもあまり得意ではないので、実際にこれができるかどうかわかりません。

4

1 に答える 1

2

クエリを実行するNodeクラスのクラスメソッドを作成し、常にそれを使用する必要があります。例えば

class Node(db.Model):
   # some properties and stuff

   @classmethod
   def active_nodes(cls):
       return cls.all().filter('active = ',True)

次に、常にNode.active_nodes()を使用します。これは、常に使用する正式なAPIの一部です。私は、同じ(そして多くの場合、より複雑なクエリ)をあちこちに書くのではなく、このアプローチを広範囲に使用しています。

于 2012-07-13T23:50:55.013 に答える