オプションのFacebookログインを持つWebアプリを構築しています。Facebook APIを介して作成されたユーザーは、アプリケーションのいくつかのポイントで異なる方法で処理されます。Person
これらの違いを、メソッドをオーバーライドするサブクラスにカプセル化したいと思います。
class Person(Model):
def get_profile_picture(self):
return profile_pictures.url(self.picture)
class FacebookPerson(Person):
def get_profile_picture(self):
return 'http:/.../%s.jpg' % self.graph_id
厄介なことを避けてif self.graph_id
、Personモデルにクエリを実行し、各ユーザーに適切なオブジェクトを取得したいと思います。
メタクラスをハッキングして、FacebookPersonをベースとして追加することを考えました。明らかに、私はそのようなブードゥーを避けたいと思います。
私はFlaskとFlask-SQLAlchemyを使用しています。