跳转到主要内容

为django-tagging添加新功能以补充

项目描述

django-tagging 提供标签功能。django-tagging-ext 提供增强的标签显示。所有渲染的HTML都是通过模板完成的,因此您可以按需自定义显示。

Django Tagging EXT的未来版本将包括以下功能

  • 更全面的测试

  • 标签分派,以便您可以更紧密地控制标签。例如,将标签限制为仅一个模型。

  • 标签自动完成

依赖关系

django-tagging

可选依赖

Pinax 0.7.x Pinax 0.9+

安装

标记版本

pip install django-tagging-ext

开发版本

pip install -e git+git://github.com/pydanny/django-tagging-ext.git#egg=django-tagging-ext

添加到您的Django settings.py文件

INSTALLED_APPS = (
    ...
    'tagging_ext',
)

通过根url_conf进行视图渲染

django-tagging-ext被设计成在根urls文件中完成所有工作。

在项目url_conf(urls.py)中

# django-tagging-ext url definitions
from blog.models import Post
from bookmarks.models import BookmarkInstance
from photos.models import Image
from tagging.models import TaggedItem

tagged_models = (
  dict(title="Blog Posts",
    query=lambda tag : TaggedItem.objects.get_by_model(Post, tag).filter(status=2),
  ),
  dict(title="Bookmarks",
    query=lambda tag : TaggedItem.objects.get_by_model(BookmarkInstance, tag),
  ),
  dict(title="Photos",
    query=lambda tag: TaggedItem.objects.get_by_model(Image, tag).filter(safetylevel=1),
  ),
)

tagging_ext_kwargs = {
  'tagged_models':tagged_models,
  # You can add your own special template to be the default
  #'default_template':'custom_templates/special.html'
}

urlpatterns += patterns('',
  url(r'^tags/(?P<tag>.+)/(?P<model>.+)$', 'tagging_ext.views.tag_by_model',
        kwargs=tagging_ext_kwargs, name='tagging_ext_tag_by_model'),
  url(r'^tags/(?P<tag>.+)/$', 'tagging_ext.views.tag',
        kwargs=tagging_ext_kwargs, name='tagging_ext_tag'),
  url(r'^tags/$', 'tagging_ext.views.index', name='tagging_ext_index'),
)

通过根url_conf渲染Pinax对象的视图

在pinax项目的url_conf(urls.py)中,我们使用custom_template字段显式告诉Django Tagging EXT获取用于Pinax的自定义视图

# django-tagging-ext url definitions
from blog.models import Post
from bookmarks.models import BookmarkInstance
from photos.models import Image
from tagging.models import TaggedItem

tagged_models = (
  dict(title="Blog Posts",
    query=lambda tag : TaggedItem.objects.get_by_model(Post, tag).filter(status=2),
    content_template="pinax_tagging_ext/blogs.html",
  ),
  dict(title="Bookmarks",
    query=lambda tag : TaggedItem.objects.get_by_model(BookmarkInstance, tag),
    content_template="pinax_tagging_ext/bookmarks.html",
  ),
  dict(title="Photos",
    query=lambda tag: TaggedItem.objects.get_by_model(Image, tag).filter(safetylevel=1),
    content_template="pinax_tagging_ext/photos.html",
  ),
)

tagging_ext_kwargs = {
  'tagged_models':tagged_models,
  # You can add your own special template to be the default
  #'default_template':'custom_templates/special.html'
}

urlpatterns += patterns('',
  url(r'^tags/(?P<tag>.+)/(?P<model>.+)$', 'tagging_ext.views.tag_by_model',
        kwargs=tagging_ext_kwargs, name='tagging_ext_tag_by_model'),
  url(r'^tags/(?P<tag>.+)/$', 'tagging_ext.views.tag',
        kwargs=tagging_ext_kwargs, name='tagging_ext_tag'),
  url(r'^tags/$', 'tagging_ext.views.index', name='tagging_ext_index'),
)

在您的Pinax项目中运行测试

$ pinax-admin setup_project -b social my_pinax_project $ cd my_pinax_project $ python manage.py test tagging_ext

项目详情


下载文件

下载适合您平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

django-tagging-ext-0.3.6.tar.gz (9.8 kB 查看哈希)

上传时间

由以下支持