【发布时间】:2017-01-22 11:42:53
【问题描述】:
我想在 django 上使用 gravatar:
import hashlib
import urllib
from django import template
from django.utils.safestring import mark_safe
register = template.Library()
# return only the URL of the gravatar
# TEMPLATE USE: {{ email|gravatar_url:150 }}
@register.filter
def gravatar_url(email, size=40):
default = "https://example.com/static/images/defaultavatar.jpg"
return "https://www.gravatar.com/avatar/%s?%s" % (
hashlib.md5(email.lower()).hexdigest(), urllib.urlencode({'d': default, 's': str(size)}))
# return an image tag with the gravatar
# TEMPLATE USE: {{ email|gravatar:150 }}
@register.filter
def gravatar(email, size=40):
url = gravatar_url(email, size)
return mark_safe('<img src="%s" height="%d" width="%d">' % (url, size, size))
我正在使用此链接: Django gravatar
我把这段代码放在一个名为“grav_tag”的文件中 并加载:
{% load grav_tag %}
我是我的模板:
{{ user.email|gravatar:150 }}
但我收到此错误
Unicode-objects must be encoded before hashing
【问题讨论】: