一般django模型模板部分的简单过滤器和标记

django-model-blocks的Python项目详细描述


model_blocks应用程序为您提供了自动生成的可设置样式的 泛型django模型模板部分。它填补了admindatabrowse通过提供过滤器和标记,使 使用以下属性创建模板:

  • 自动生成的只读视图
  • 可以符合您想要的任何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.htmlknuckle_detail.html 文件夹。

帮助

找到虫子了吗?在Github提交问题。有进步吗?餐具 它并添加它,或者如果您不能对它进行编码,请提交一个issue文件,我们将执行此操作。

您是在使用还是正在考虑使用django-model-filters?请drop a line告诉我们为什么。 知道人们在野外是如何使用它的,会帮助我们把它变得更好!

发展

下载代码,然后:

$ pip install -r requirements.txt

运行测试

即使是简单的软件包也需要测试:

$ python tests.py --with-coverage --cover-package=model_block

在进行任何更改之前和之后运行它。别让那个号码掉下来。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java用变化的替换字符串替换子字符串   从数据库中断中恢复的oracle Java DAL?   Android/Java页边距位于左/右/底部   java如何用相同的源代码构建不同的APK?(我发现了一个错误)   java正则表达式,仅当字符串以一行中的3个数字开头时才匹配第一个数字   使用以xml为输入的给定端点调用java中的rest-ful web服务?   java长字符串转换为UTF8引发异常   java如何使用截取方法获取ArrayList   java将计算列添加到可观察列表中   正则表达式如何在java正则表达式中使用组?   java正则表达式只接受字母表和空格,不允许在字符串的开头和结尾使用空格   java简单onclick按钮在安卓中不起作用   java如何在Spring中只实现Crudepository的特定方法?   java无法使用json对象NPE读取jsonarray   java我可以添加maven依赖项,这些依赖项被打包为除此之外的任何东西。罐子