gpt4 book ai didi

python - 在 Django 中编写模板标签

转载 作者:行者123 更新时间:2023-12-01 06:19:36 24 4
gpt4 key购买 nike

我正在尝试定制一个用 Django 编写的 CMS。内容编辑器不够灵活,因此我正在尝试提出更好的解决方案。

无需过度解释,我希望它有点像 django-better-chunksdjango-flatblocks。您完全在模板内设置可编辑区域。我想将这些可编辑区域绑定(bind)到字符串和对象实例的混合。一个示例是基于一种产品具有多个可编辑区域:

{% block product_instance "title" %}
{% block product_instance "product description" %}

因此,如果您有另一个产品作为 product_instance 的 View ,那么这两个 block 将显示不同的数据。我还会看到仅通过字符串部分的站点范围 block 的使用。本质上,我希望能够传递 1-无穷大标识符。

但我真的在两个方面苦苦挣扎:

  1. 如何定义混合标识符和实际内容“block”实例之间的关系?我有一种感觉,内容类型可能会在这里出现,但我真的不知道从哪里开始寻找!

  2. 如何编写模板标签来读取上述语法并将其转换为对象进行渲染?

最佳答案

为此,您可以创建一个包含标签并使用它,如下所示:

{% load my_tags %}
{% product bicycle <extra vars ...> %}

要定义标签,请添加到您的 app/templatetags/mytags.py:

@register.inclusion_tag('results.html')
def product(item, *extra):
#maybe repackage extra variables
#and add them to the returned dictionary
item_form = ItemForm(item) #form.ModelForm instance
return {'item': item, 'item_form':item_form, ...}

然后您需要一个返回该项目 html 的模板:

<h1>{{item.title}}</h1>
{{item_form}}
... add some conditional statements depending on extra vars

关于python - 在 Django 中编写模板标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1200548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com