Django应用程序,用于通过AJAX懒惰加载模板标签
项目描述
一个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-tag、lazy-tag-spinner-container或lazy-tag-spinner类。
当前限制
不适用于接受上下文的标签。
模板标签参数必须是可序列化的(str、unicode、int、float等)。
项目详情
哈希值 for django_lazy_tags-0.5.0-py2.py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b3a81cf81420ea60eb146fe0f104843299535e78bb6b00bb2f721ec48c2e0ad4 |
|
MD5 | ea23f7f30903445049e07b9caf56a0a1 |
|
BLAKE2b-256 | 5f2f35d342aa82c7126d6c49001d171cb5962b33afe45175ecf6ce3efe4cffd0 |