big*_*ind 0 google-app-engine model
我在app引擎中拥有自己的User模型,该模型应具有其gravatar url的属性.但是,由于可以使用他的电子邮件地址快速计算,因此存储它没有意义.有没有办法在从数据存储区加载时自动初始化此属性?
我可以添加一个名为get_avatar_url()的方法,但是你不能在jinja2模板中调用对象的方法(据我所知),并且我不想将所有这些值单独发布到模板中.
您可以按照描述定义方法,也可以定义属性,如下所示:
class MyModel(db.Model):
email = db.StringProperty(required=True)
@property
def avatar_url(self):
return "http://gravatar.com/avatar/%s" % (hashlib.md5(self.email).hexdigest(),)
Run Code Online (Sandbox Code Playgroud)
然后,您可以将其称为instance.avatar_url(或在模板中{{instance.avatar_url}}).
要么在jinja2模板中都可以正常工作,但是如果你需要在其他地方请求它,那么使用属性会稍微整齐一些.由于只有数据存储区属性实例导致在数据存储区中存储数据,因此您的属性不会存储在数据存储区中.
| 归档时间: |
|
| 查看次数: |
615 次 |
| 最近记录: |