Django-lastfm contains only one template tag in lastfm.templatetags.lastfm_widget that is used to load a context object with all necessary data.
This module defines a single template tag that will return a context object for your Last.fm widget. It contains a title for the widget and a <div> container. This container includes the AJAX code that retrieves the data from the lastfm view and generates an image for each item.
{% load lastfm_widget %}
{% get_lastfm_widget as lastfm_widget %}
<h2>{{ lastfm_widget.title }}</h2>
{{ lastfm_widget.content }}
The generated code will roughly look like this:
<div class="lastfm">
<div><a><img /></a></div>
<div><a><img /></a></div>
<!-- ... -->
</div>
The surrounding <div> has the CSS class lastfm. You can use this to customize the style of the widget. This how it could look like:
#sidebar > #lastfm {
min-height: 225px; /* required due to "float: left" in the next sec. */
}
#sidebar #lastfm div {
width: 54px;
height: 39px;
overflow: hidden;
float: left;
border: 1px solid white;
-moz-border-radius: 2px;
-khtml-border-radius: 2px;
border-radius: 2px;
margin: 0px 2px 4px 2px;
}
#sidebar #lastfm div:active, #sidebar #lastfm div:hover {
border-color: #9FC765;
}
#sidebar #lastfm img {
width: 54px;
min-height: 39px;
}
As for every template tag, there is a compilation function (get_lastfm_widget()) and a renderer (LastfmWidgetNode) that do all the work.