问题描述
我有一个 DCE 内容元素,现在我需要在这个模板中添加一个带有变量文本的 json 对象。
我尝试了很多方法
<f:format.raw>{</f:format.raw>
或
<f:format.alias map="{l: '{}',r: '}'}"> { json } </f:format.alias>
但没有任何效果。
<dce:format.WrapWithCurlyBraces>json</dce:format.WrapWithCurlyBraces>
是我的最后一次测试,但这会生成一个空输出。有什么办法可以输出一些带有dce里面的变量的json吗?
<f:format.json>{"context": "https://schema.org/"}</f:format.json>
DCE 版本:2.6.0
TYPO3:9.5
解决方法
def form_valid(self,form):
user = form.save()
group = Group.objects.get(pk=self.request.POST.get('group_id'))
user.groups.add(group)
应该可以工作。如果没有,您也可以尝试<f:format.raw>{</f:format.raw>
。例如:
<f:format.raw value="{" />
,
您不需要那么多变通办法;) 您只是错误地使用了 JSON-ViewHelper。它需要一个(流体)数组作为输入。
<f:format.json value="{context: 'https://schema.org/'}" />
由于 JSON 中的 "
在输出到 HTML 之前会被转义,我们只对整个字符串使用 f:format:raw
。
<f:format.raw><f:format.json value="{context: 'https://schema.org/'}" /></f:format.raw>
或者,可能更好:
<f:variable name="jsonData" value="{context: 'https://schema.org/'}" />
{jsonData -> f:format.json() -> f:format.raw()}
这等于:
<f:variable name="jsonData" value="{context: 'https://schema.org/'}" />
<f:format.raw><f:format.json>{jsonData}</f:format.json></f:format.raw>
(在您的情况下,我认为您已经将 jsonData
作为变量 json
,不是吗?)