From 9ab18a72d89145de86ed77e03e46842f25888924 Mon Sep 17 00:00:00 2001 From: Hsinfu Huang Date: Tue, 22 Mar 2016 19:11:45 +0800 Subject: [PATCH] add feature of customizing the attribute of avatar img --- avatar/templates/avatar/avatar_tag.html | 2 +- avatar/templatetags/avatar_tags.py | 5 +++-- docs/index.txt | 9 +++++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/avatar/templates/avatar/avatar_tag.html b/avatar/templates/avatar/avatar_tag.html index 79f3e61..e6a3db2 100644 --- a/avatar/templates/avatar/avatar_tag.html +++ b/avatar/templates/avatar/avatar_tag.html @@ -1 +1 @@ -{{ alt }} \ No newline at end of file +{{ alt }} \ No newline at end of file diff --git a/avatar/templatetags/avatar_tags.py b/avatar/templatetags/avatar_tags.py index 4dc7963..29cc256 100644 --- a/avatar/templatetags/avatar_tags.py +++ b/avatar/templatetags/avatar_tags.py @@ -70,12 +70,13 @@ def avatar(user, size=settings.AVATAR_DEFAULT_SIZE, **kwargs): else: alt = six.text_type(user) url = avatar_url(user, size) - context = dict(kwargs, **{ + context = { 'user': user, 'url': url, 'alt': alt, 'size': size, - }) + 'kwargs': kwargs, + } return render_to_string('avatar/avatar_tag.html', context) diff --git a/docs/index.txt b/docs/index.txt index 3fc6fd9..e96cc3a 100644 --- a/docs/index.txt +++ b/docs/index.txt @@ -68,6 +68,10 @@ that are required. A minimal integration can work like this: {% avatar user 65 %} + Example for customize the attribute of the HTML ``img`` tag:: + + {% avatar user 65 class="img-circle img-responsive" id="user_avatar" %} + Template tags and filter ------------------------ @@ -80,10 +84,11 @@ template rendering system:: Renders the URL of the avatar for the given user. User can be either a ``django.contrib.auth.models.User`` object instance or a username. -``{% avatar user [size in pixels] %}`` +``{% avatar user [size in pixels] **kwargs %}`` Renders an HTML ``img`` tag for the given user for the specified size. User can be either a ``django.contrib.auth.models.User`` object instance or a - username. + username. The (key, value) pairs in kwargs will be added to ``img`` tag + as its attributes. ``{% render_avatar avatar [size in pixels] %}`` Given an actual ``avatar.models.Avatar`` object instance, renders an HTML