'Represent applied tags and render controls to allow removal.'

def _render_tag_list_items(self, control_name, tag_names):

    def render_one(tag):
        output = u'<li    class="tag">'
        if (not self.async_urls):
            output += (u'<input%s    />' % flatatt({'value': force_unicode(tag.name), 'type': 'hidden', 'name': control_name}))
            output += (u'<span    class="tag-name">%s</span>' % escape(tag.name))
        else:
            output += (u'<a    class="tag-name"    href="%s">%s</a>' % (escape(self.make_link(tag.slug)), escape(tag.name)))
        if (not self.read_only):
            output += (u'<input    type="submit"    value="&#x2716;"    class="remover"    name="remove-tag-%s"    />' % escape(tag.name))
        output += u'</li>'
        return output
    tags = Tag.objects.filter(name__in=tag_names)
    representations = [render_one(t) for t in tags]
    return u'\n'.join(representations)
