2012-05-02 12 views
0

私はユーザのアバターを表示するテンプレートでdjango-gravatarを使用しています。Django - 表示からgravatarを取得

今、ビューからアバターのURIを取得したいと思います。
私はtemplate tag functions

よう
from gravatar import templatetags 
_get_gravatar_id('[email protected]') 
# or 
gravatar_for_email('[email protected]') 

を使用しようとしたが、機能は、私はそれらにアクセスするにはどうすればよい
に定義されていませんか?

答えて

1

インポートする必要があります。

from gravatar.templatetags.gravatar import _get_gravatar_id, gravatar_for_email 
+0

'_get_gravatar_id()'はインポート可能ではありませんが(私的かもしれませんが)、動作しているので 'gravatar_for_email()'を使用します。おかげで –

2

このプロジェクトでは、pythonでURLが公開されているようには見えません。これらのタグのみを提供します。

実際に画像のURLをpythonにしたい場合は、自分で作成するのは難しくありません。 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 
+0

私はすでにこのライブラリを使用しているので、私はすでに行われた作業を利用し、自分自身を繰り返さないようにしたい –

0

私はまた、視覚的に満足、抽象的、ユーザー固有のユーザープロファイル画像を生成したかったです。私のガイドとしてのSionade21の答えで、私は次のように実装しました。 hashcompatが1.5で廃止されたので、私はSionade21の答えを微調整しなければならなかった。

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をユーザー属性としてではなく、それはその場で毎回生成します。私はこれがこの質問/答えにつきまとう次の人を助けることを願っています。

関連する問題