我参考了这个网站: http://tomatohater.com/2008/08/16/implementing-gravatar-django/
我的个人资料应用程序包含带有mytags.py的templatetags目录。
mytags.py的内容
import urllib, hashlib
from django import template
register = template.Library()
@register.inclusion_tag('templatetags/gravatar.html')
def show_gravatar(email, size=48):
default = "http://www.mysite.com/media/images/no-avatar.gif"
url = "http://www.gravatar.com/avatar.php?"
url += urllib.urlencode({
'gravatar_id': hashlib.md5(email).hexdigest(),
'default': default,
'size': str(size)
})
return {'gravatar': {'url': url, 'size': size}}
templates / templatetags / gravatar.html
的内容<img src="{{ gravatar.url }}" width="{{ gravatar.size }}" height="{{ gravatar.size }}" border="0" />
该标记用于profile.html模板文件。
但是在profile.html中没有显示重力图。然而,消息来源显示
<div class="gravatar">
<a href="">
<img src="http://www.gravatar.com/avatar.php?default=http%3A%2F%2Fwww.mysite.com%2Fmedia%2Fimages%2Fno-avatar.gif&size=48&gravatar_id=5d1b0b64499475516bd9c051aa7f3560" width="48" height="48" border="0" />
</a></div>
答案 0 :(得分:0)
<img src="{{ gravatar.url|safe }}" width="{{ gravatar.size }}" height="{{ gravatar.size }}" border="0" />
Safe
模板过滤器会阻止自动转义&
答案 1 :(得分:0)
当我尝试图片网址时,gravatar无法识别哈希的电子邮件地址,因此会重定向到您提供的后备图片:http://www.mysite.com/media/images/no-avatar.gif
你得到后备是否正确?或者你期待一个真正的gravatar?如果是这样,错误就会以某种方式出现在哈希中。
mysite.com显然不是您的网站。但是,您实际上是否使用了正确的URL?
硬编码的网址:您使用的是正确的主机名吗?来自MEDIA_URL
的正确settings.py
答案 2 :(得分:0)
参考the doc,始终降低并删除电子邮件。
也可以使用'http://www.gravatar.com/avatar/'+hase
代替传统格式
然后代码看起来像
url = 'http://www.gravatar.com/avatar/%s?%s" % (
hashlib.md5(email.strip().lower()).hexdigest(),
urllib.urlencode({'default': default, 'size': size}))
对于您的代码,它很可能是电子邮件哈希与任何东西都不匹配。我使用你代码中的格式尝试了我的头像,效果很好。 Has the email been registered?