我在模板中使用django-gravatar來顯示我的用戶的頭像。Django - 從視圖中獲取gravatar
現在我想從視圖中獲取頭像的URI。
我試圖用template tag functions像
from gravatar import templatetags
_get_gravatar_id('[email protected]')
# or
gravatar_for_email('[email protected]')
但功能沒有定義
我如何訪問它們?
我在模板中使用django-gravatar來顯示我的用戶的頭像。Django - 從視圖中獲取gravatar
現在我想從視圖中獲取頭像的URI。
我試圖用template tag functions像
from gravatar import templatetags
_get_gravatar_id('[email protected]')
# or
gravatar_for_email('[email protected]')
但功能沒有定義
我如何訪問它們?
您應該導入它們。
from gravatar.templatetags.gravatar import _get_gravatar_id, gravatar_for_email
它看起來並不像該項目在公開蟒蛇的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中已棄用。
Views.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"
模板(S):
<img src={{ avatar_url; }}</img>
這偉大的工作。
如:http://www.gravatar.com/avatar/7c40983cf4dd3b13108bc427025326c0?s=35&d=identicon&r=PG
我進了一步,並保存/存儲avatar_url在我的數據庫的用戶屬性,而不是生成它在飛行每次。我希望這有助於下一個在這個問題/答案中絆倒的人。
'_get_gravatar_id()'是不可導入的(可能是私有的),但我將使用'gravatar_for_email()',因爲它正在工作。謝謝 –