Django从vi那里得到gravatar

2024-06-17 09:12:20 发布

您现在位置:Python中文网/ 问答频道 /正文

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

现在我想从视图中获取头像的URI。
我试着用template tag functions之类的

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

但函数未定义
我如何访问它们?在


Tags: django用户fromtestimportcom视图模板
3条回答

你应该导入它们。在

from gravatar.templatetags.gravatar import _get_gravatar_id, gravatar_for_email

看起来这个项目并没有在python中公开URL。它只提供那些标记。在

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

from django.utils.hashcompat import md5_constructor

email_hash = md5_constructor(email.strip().lower()).hexdigest()
url = "http://www.gravatar.com/avatar/%s" % email_hash

我还想生成直观、抽象、用户特定的用户配置文件图像。根据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"

模板:

^{pr2}$

这很有效。在

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

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

相关问题 更多 >