Skip to main content
 首页 » 编程设计

python之在 Python 中获取已在 mongoDB 集合中的文档的对象 ID

2025年05月04日29cyq1162

我在 mongodb 中有一个集合,我已经在其中插入了文档。现在我想更新一个文档条目,我想在 django 模板中检索文档 ID,就像我在条目旁边使用复选框一样HTML。我想给单个框一个唯一的 ID,我计划使用与文档 ID 相同的 ID .. 所以 我如何在 DJANGO 模板中检索文档 ID?

请您参考如下方法:

您可以使用 _id 属性获取 MongoDB 文档的 ID。但是,在 Django 模板中使用 {{ object._id }} 会导致它抛出一个错误,指出找不到 _id 属性。

要解决这个问题,您必须为您的应用创建自定义模板标签并使用它来获取 _id。

在您的应用程序文件夹中,创建一个 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> 

请记住,应用程序应该位于 settings.py 中的 INSTALLED_APPS 设置变量中,以便 django 加载模板标签。