gpt4 book ai didi

django 自定义标签内联或 block

转载 作者:行者123 更新时间:2023-12-04 05:57:46 26 4
gpt4 key购买 nike

我想知道是否有办法检查标签是否有结束块。我基本上是想让用户做

{% mytag 'a' 'b' 'c' %}

或者
{% mytag 'a' 'b' 'c' %}
<!-- other markup here -->
{% end mytag %}

我看到如果它不存在它会引发异常,但是有没有办法以编程方式设置我的标签来安全地处理这两种情况?

最佳答案

您可以尝试解析直到结束标记并在未找到异常时捕获异常。如果您也遇到另一个 mytag 节点,您可能想停止:

def do_mytag_stuff(parser, token):

# Process your token however you need
mytag_args = token.split_contents()

try:
nodelist = parser.parse(('endmytag', 'mytag'))
token = parser.next_token()
if token.contents == 'endmytag':
# Found an ending tag, make a node for its contents
parser.delete_first_token()
return MyTagNode(nodelist, mytag_args)

except TemplateSyntaxError:
# Neither tag was found
pass

# So either there's no closing tag, or we met another mytag before a closing tag.
# Do whatever you would for a single tag here
return SingleMyTagNode(mytag_args)

不确定这是否 100% 正确,但希望它会有所帮助。

关于django 自定义标签内联或 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9314529/

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