我正在构建一个具有可选 Facebook 登录的 webapp。在我的应用程序中,通过 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。