0

我在模板中使用django-gravatar来显示我的用户的头像。

现在我想从视图中获取头像的 URI。
我尝试使用模板标签功能,如

from gravatar import templatetags
_get_gravatar_id('test@test.com')
# or
gravatar_for_email('test@test.com')

但是功能没有定义
我怎样才能访问它们?

4

3 回答 3

1

您应该导入它们。

from gravatar.templatetags.gravatar import _get_gravatar_id, gravatar_for_email
于 2012-05-02T11:42:55.003 回答
1

看起来该项目没有在 python 中公开 URL。它只提供那些标签。

如果您真的想要python中的图像URL,那么自己创建并不难。Gravatar 网站有关于如何创建它的说明,但基本上是:

from django.utils.hashcompat import md5_constructor

email_hash = md5_constructor(email.strip().lower()).hexdigest()
url = "http://www.gravatar.com/avatar/%s" % email_hash
于 2012-05-02T11:44:23.877 回答
0

我还想生成视觉上令人愉悦的、抽象的、特定于用户的用户个人资料图像。以 Sionade21 的回答作为我的指导,我按如下方式实现了它。我不得不调整 Sionade21 的答案,因为 hashcompat 在 1.5 中已弃用。

视图.py:

from hashlib import md5

def my_view(request):
    email_hash = md5(my_user.email.strip().lower()).hexdigest()
    avatar_url = "http://www.gravatar.com/avatar/%s" % email_hash + 
                 "?s=35&d=identicon&r=PG"

模板:

<img src={{ avatar_url; }}</img>

这很好用。

例如:http ://www.gravatar.com/avatar/7c40983cf4dd3b13108bc427025326c0?s=35&d=identicon&r=PG

我更进一步,将 avatar_url 作为用户属性保存/存储在我的数据库中,而不是每次都即时生成它。我希望这可以帮助下一个偶然发现这个问题/答案的人。

于 2013-12-22T00:11:55.617 回答