一般django模型模板部分的简单过滤器和标记
django-model-blocks的Python项目详细描述
model_blocks应用程序为您提供了自动生成的可设置样式的 泛型django模型模板部分。它填补了admin和 databrowse通过提供过滤器和标记,使 使用以下属性创建模板:
- 自动生成的只读视图
- 可以符合您想要的任何url结构
- 与项目的其他部分很好地集成
将此添加到任何模板的顶部:
{% load model_blocks %}
然后将过滤器放到有模型实例的任何地方(例如,detailviews):
{{ object|as_detail_block }}
快速参考
安装
您可以从pypi安装model_blocks应用程序:
$ pip install django-model-blocks
设置
将INSTALLED_APPS设置修改为包括:
... model_blocks, ...
基本用法
在要使用模型块的任何模板顶部附近,或在基础中 模板,包括以下行:
{% load model_blocks %}
然后,如果要删除通用模型模板,请使用:
{{ object|as_detail_block }}
或:
{{ object_list|as_list_block }}
(注意:如果列表有许多对象,请考虑使用分页作为列表 可能需要很长时间才能渲染。)
默认情况下,对象详细信息块的标题将是Unicode
对象的表示形式,列表中的标题将是
模型附加了' List'
。要更改标题,请传入一个参数:
{{ object|as_detail_block:"My Special Object" }}
高级使用
而使用过滤器仍然是最原始和最简单的渲染方式 如果您想要/需要更好地控制 模型渲染,您可以使用标记符号:
{% detail_block object %} {% list_block object_list %}
您仍然可以使用with:
{% with title="My Special Object" %} {% detail_block object %} {% endwith %}
是的,如果你需要做的只是覆盖标题,那么就坚持使用过滤器。 但是,当您将细节块放入模板时,它将自动 呈现所有被引用对象的字段,包括相关的模型字段。 这可能会在页面中生成对象树。标记符号是 当需要为中的任何模型使用自定义模板时,将显示强度。 你的树。
源代码中的example_project包含此功能的演示。 在这个例子中,有Pepulator个对象,每个对象可能有几个 Knuckle对象和几个Jamb对象。但是,每个Knuckle都有 引用图像url的字段。在我们的Pepulator详细信息页上,我们 希望显示所有的Kuckle对象和Jamb对象。违约 模板对于Jamb对象已经足够了,但是我们必须提供一个自定义 每个Knuckle的模板(基于默认值)。所以,我们把 Pepulator细节如下:
{% with pepulator_factory_knuckle_detail_template="pepulator_factory/knuckle_detail.html" %} {% detail_block pepulator %} {% endwith %}
喂!有关更多信息,请查看 pepulator_detail.html 和 knuckle_detail.html 文件夹。
帮助
找到虫子了吗?在Github提交问题。有进步吗?餐具 它并添加它,或者如果您不能对它进行编码,请提交一个issue文件,我们将执行此操作。
您是在使用还是正在考虑使用django-model-filters?请drop a line告诉我们为什么。 知道人们在野外是如何使用它的,会帮助我们把它变得更好!
发展
下载代码,然后:
$ pip install -r requirements.txt
运行测试
即使是简单的软件包也需要测试:
$ python tests.py --with-coverage --cover-package=model_block
在进行任何更改之前和之后运行它。别让那个号码掉下来。