gpt4 book ai didi

django - 覆盖现有的Django模板标签

转载 作者:行者123 更新时间:2023-12-03 14:40:51 25 4
gpt4 key购买 nike

是否可以覆盖现有的Django模板标签,还是需要自定义模板文件并创建新的模板标签?

最佳答案

是。

由于django本质上是一个python库(与python中的所有内容一样),因此您可以覆盖所需的任何内容。

目前尚不清楚您想做什么,但滚动自己的templatetag确实很容易,文档也很清楚:
https://docs.djangoproject.com/en/dev/howto/custom-template-tags/#writing-custom-template-tags

这是疯狂的基础,但这是我用来从以下位置开始构建自定义模板标签的模板:

myapp / templatetags / my_custom_tags.py
(此目录中必须有__init__.py

from django import template
register = template.Library()

class CustomTag(template.Node):
def render(self, context):
context['my_custom_tag_context'] = "this is my custom tag, yeah"
return ''

@register.tag(name='get_custom_tag')
def get_custom_tag(parser, token):
return CustomTag()


模板中的用法如下:

{% load my_custom_tags %}
{% get_custom_tag %}
{{my_custom_tag_context}}


您可能想解析 token,并且您可能想要在类中使用某种 __init__,但是它确实说明了它的基础。



您可以浏览现有的“默认”模板标签,将其复制并修改为您的内心所爱。

那里确实有一些很棒的东西:
https://github.com/django/django/blob/master/django/template/defaulttags.py

关于django - 覆盖现有的Django模板标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13223633/

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