私はPythonでRailsのダイナミックファインダ( webapp/GAE)のようなものを実装しようとしています。ダイナミックファインダーは次のように動作します。動的なファインダとメソッドがPythonで見つからない
- 名前、年齢、電子メールのフィールドがあります。
- "Robot"という名前のすべてのユーザーを検索するとします。
Personクラスは名前 を受信し、クエリの結果を返します「find_by_name」と呼ばれる方法があります:私は、代わりに、属性ごとにそのようなメソッドを記述するので
@classmethod
def find_by_name(cls, name):
return Person.gql("WHERE name = :1", name).get()
を にはRubyのmethod_missingのようなものがあります。
これまでのところ、私はこれらの2件のブログの記事を見てきました:http://blog.iffy.us/?p=43と http://www.whatspop.com/blog/2008/08/method-missing-in-python.cfmを私はそれを行うための「最もappropiate」方法です何を聞きたいと思い 。
このコードを使用しようとしましたが、まだ取得しています: 'AttributeError("タイプオブジェクト 'FindableModel'に 'find_by_name' "、)'属性がありません。これを使う方法をもう少し説明できますか? – hakunin
@hakuninどうやって使っていますか?これをモデルの親クラスにする必要があります。 –
私が使っているモデルは次のとおりです:https://gist.github.com/2014164私は '__getattr__'を使いたいですが、何らかの理由で呼び出されません。 – hakunin