我在 mongodb 中有一个集合,我已经在其中插入了文档。现在我想更新一个文档条目,我想在 django 模板中检索文档 ID,就像我在 HTML.I 中的条目旁边使用复选框一样想给单个盒子一个唯一的 id,我打算使用与文档 id 相同的 .. 那么我如何在 DJANGO 模板中检索文档 ID?
问问题
2787 次
1 回答
7
您可以使用该_id
属性获取 MongoDB 文档的 ID。但是{{ object._id }}
,在 Django 模板中使用会引发错误,提示找不到 _id 属性。
要解决这个问题,您必须为您的应用程序创建一个自定义模板标签并使用它来获取 _id。
在你的 app 文件夹中,创建一个 templatetags 文件夹并创建一些 python 文件,例如:appname_tags.py。
目录结构将是这样的
/projectdir
/appdir
/templatetags
__init__.py
appname_tags.py
models.py
views.py
在 appname_tags.py 中粘贴以下代码
from django import template
register = template.Library()
@register.filter("mongo_id")
def mongo_id(value):
return str(value['_id'])
现在,您可以通过加载标签模块并将 mongo 文档对象传递给它来在模板中使用这个新的自定义模板标签。
<html>
<body>
{% load appname_tags %}
<p>here is your mongodb record id: {{ object|mongo_id }}</>
</body>
</html>
请记住,应用程序应该在INSTALLED_APPS
设置变量中,settings.py
以便 django 加载模板标签。
于 2013-02-20T09:38:53.507 回答