6 янв. 2010 г.

Django-tagging и русские тэги.

Основательно потрахавшись с django-tagging пришел к выводу, что не лишним будет поделится накопленным опытом.


# urls:

    ...

    url(r'^tag/(?P<tag>[^/]+)/$', bookmarks_by_tag, name = "tag"),

    ...



# views:

@login_required

def bookmarks_by_tag(request, tag):

    tag = urllib.unquote(unicode(tag))

    tag = get_object_or_404(Tag, name = tag)

    bookmark_instances = TaggedItem.objects.get_by_model(BookmarkInstance, tag)



    return render_to_response("bookmarks/your_bookmarks.html", {

        "bookmark_instances": bookmark_instances,

    }, context_instance=RequestContext(request))



# tamplates:

{% load tagging_tags %}



{% tag_cloud_for_model bookmarks.UserBookmarkInstance as tags with steps=9 min_count=0 distribution=log %}



<div id="cloud">

    {% for tag in tags %}

       <a href="{% url tag tag|urlencode %}" style="font-size: 1.{{ tag.font_size }}em">{{ tag }}</a>&nbsp;

    {% endfor %}

</div>


2 комментария:

Павел комментирует...

а в админ панели для конкретной модели, при добавлении или редактировании поле с TagField должно быть простым input или же должен появиться выбор из существующих ??

Ivan Markeev комментирует...

К сожалению, я уже не помню. Посмотреть некогда.