python - 提取 Mustache 变量以在 Django 模板标签中使用
问题描述
我正在为 Django 实现 Algolia 的搜索 API,并且我有一个特定的 Mustache 变量{{ObjectID}}
,它对应于搜索结果的 ID。我只能使用 via{% verbatim %} {{ObjectID}} {% endverbatim %}
而不会出现 Django 的模板语法冲突。
但是,我还需要这个变量来构造 ID 的 url,但问题是我不能轻松地将 Mustache 变量传递到可直接用于 Django 模板的表单中。例如,简单地做
{% url "appName:method" {{ObjectID}} %}
与 Django 的模板语法冲突,但试图通过verbatim
ivnoke
{% url "appName:method" {%verbatim %} {{ObjectID}} {% endverbatim %} %}
也不起作用,因为不允许在模板标签中调用模板标签。
我也无法使用{{ObjectID}}
方法存储为临时变量或离岸url
到单独的方法,例如
function generate (objectID){
return "{% url 'appName:method' objectID %}"
}
//usage of method
<a href = "generate({% verbatim %}{{ObjectID}} {% endverbatim %})">link</a>
因为 Django 将处理onSighturl
和 throw NoReverseMatch
sinceobjectID
尚未由 Algolia 定义。有没有一种方法可以提取出来{{ObjectID}}
,以便可以将其通过管道返回到 Django 的url
构造函数中?
注意:我的 Algolia 实现不直接与 Django 的数据库交互,而是它自己的单独存储的数据库的索引。更多关于algoliasearch-django
's Github 的信息
解决方案
我建议您在视图中使用类似的东西并将值传递给模板:
reverse('appName:method', args=[1337]).replace('1337', '{{ObjectID}}')
如果您必须仅在模板中执行此操作,并且您可以确保该{{ObjectID}}
部分将始终位于 URL 的末尾,您可以这样做:
{% url "appName:method" 1337 as my_url %}
<a href="{{ my_url|slice:":-5" }}{% verbatim %}{{ObjectID}}{% endverbatim %}/">...</a>
请注意,上面的模板代码假定尾部有斜杠。
推荐阅读
- javascript - 如何在网站底部放置3个按钮?
- android - 通过 OAuth 发布版本的 Google Drive 收到 dailyLimitExceededUnreg
- python - 计数小于和结束条件的值
- amazon-web-services - AWS:找不到 iam 的实例元数据
- javascript - 如何使用 javascript 和 mvc 将画布上传到项目的文件夹
- sql - 汇总 SQL Server 中 1 列中每个值的值计数
- apache-kafka - 如何获取运行在 ibm cloud 上的中间件服务的可用性状态?
- sql - 如何检查字符串的长度是否超过一个单词并仅保留第一个单词,否则将整个字符串保留在 SQL 中?
- java - Java,无法解析的日期错误,从字符串转换为日期
- git - 如何告诉 git 接受所有当前的更改