我在mongodb中有一个集合,我已经插入了文档。现在我想要更新文档条目,我想在django模板中检索文档ID,就像我使用复选框旁边的复选框一样HTML。我想给单个框一个唯一的ID,我计划使用与文档ID相同的..所以如何在DJANGO模板中检索文档ID ?
答案 0 :(得分:6)
您可以使用_id
属性获取MongoDB文档的ID。但是,在Django模板中使用{{ object._id }}
会使它抛出错误,说它无法找到_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
的{{1}}设置变量中,以便django加载模板标记。