跳转到主要内容

Django应用程序,用于通过AJAX懒惰加载模板标签

项目描述

https://img.shields.io/pypi/v/django-lazy-tags.svg Documentation Status https://travis-ci.org/grantmcconnaughey/django-lazy-tags.svg https://coveralls.io/repos/grantmcconnaughey/django-lazy-tags/badge.svg?branch=master&service=github

一个Django应用程序,用于通过AJAX轻松加载模板标签。

安装

1. 使用pip安装

pip install django-lazy-tags

2. 添加到已安装的应用程序

INSTALLED_APPS = (
    # ...
    'lazy_tags',
)

3. 将懒惰标签URL添加到您的根URLconf中。

urlpatterns = patterns('',
    # ...
    url(r'^lazy_tags/', include('lazy_tags.urls')),
)

使用方法

首先,在您的模板中加载lazy_tags库。

{% load lazy_tags %}

然后,调用lazy_tag模板标签,将您的标签名称作为第一个参数。格式为tag_library.tag_name,其中tag_library是您将在页眉加载的内容(例如my_tags),而tag_name是您的模板标签名称(例如my_template_tag)。在lazy_tag的第一个参数之后,简单地传递其余的args和kwargs,就像您传递给自己的标签一样。

{% load my_tags %}

{% my_template_tag arg1 arg2 kw1='hello' kw2='world' %}

变为这

{% load lazy_tags %}

{% lazy_tag 'my_tags.my_template_tag' arg1 arg2 kw1='hello' kw2='world' %}

在将模板标签放置在模板中之后,您仍然需要指定AJAX JavaScript输出到页面的位置。这正是lazy_tags_js标签的作用所在

{% block js-additional %}
  {% lazy_tags_js%}
{% endblock %}

这将输出运行AJAX所需的JavaScript。JavaScript会根据您的LAZY_TAGS_AJAX_JS设置而变化。

lazy_tag装饰器

django-lazy-tags还包含一个装饰器,可用于使用simple_tag的模板标签。当使用lazy_tag装饰器时,您可以使用模板标签与之前完全相同,它们将使用AJAX。

from lazy_tags.decorators import lazy_tag

@register.simple_tag
@lazy_tag
def show_user(pk):
    user = User.objects.get(pk=pk)
    return render_to_string('user/show_user.html', {
        'user': user,
    })

此方法存在一些注意事项。首先,当前装饰器仅适用于使用simple_tag的标签。希望将来能支持inclusion_tag。其次,lazy_tag装饰器必须放在simple_tag装饰器之后。

设置

LAZY_TAGS_AJAX_JS

用于运行AJAX的库。选项包括'javascript''jquery''prototype'。默认为'jquery'

LAZY_TAGS_CACHE_TIMEOUT

每个延迟标签缓存的超时时间。默认为60秒。

LAZY_TAGS_ERROR_MESSAGE

如果AJAX请求失败,显示的错误消息。默认为'An error occurred.'

自定义加载动画

这是AJAX请求完成之前的页面上的默认HTML

<div id="{{ tag_id }}" class="lazy-tag">
    <div class="lazy-tag-spinner-container"
         style="width: 100%; text-align: center;">
        <img id="{{ tag_id }}-spinner" class="lazy-tag-spinner"
             style="width: 15px; height: 15px;"
             src="{static_url}img/lazy_tags/spinner.gif" />
    </div>
</div>

要自定义加载动画,请在CSS中覆盖lazy-taglazy-tag-spinner-containerlazy-tag-spinner类。

当前限制

  • 不适用于接受上下文的标签。

  • 模板标签参数必须是可序列化的(str、unicode、int、float等)。

项目详情


下载文件

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

源代码分发

django-lazy-tags-0.5.0.tar.gz (31.9 kB 查看哈希值)

上传时间 源代码

构建分发

django_lazy_tags-0.5.0-py2.py3-none-any.whl (27.9 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面