Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取Python中mongoDB集合中已存在的文档的对象id_Python_Django_Templates_Mongodb - Fatal编程技术网

获取Python中mongoDB集合中已存在的文档的对象id

获取Python中mongoDB集合中已存在的文档的对象id,python,django,templates,mongodb,Python,Django,Templates,Mongodb,我在mongodb中有一个集合,我已经在其中插入了文档。现在我想更新一个文档条目,并在django模板中检索文档ID,就像我在HTML中的条目旁边使用复选框一样。我想给每个框一个唯一的ID,我计划使用它作为文档ID。。因此如何在DJANGO模板中检索文档ID?您可以使用\u ID属性获取MongoDB文档的ID。但是,在Django模板中使用{{object.\u id}}会导致它抛出一个错误,说它找不到\u id属性 要解决此问题,您必须为应用程序创建自定义模板标记,并使用该标记获取_id 在

我在mongodb中有一个集合,我已经在其中插入了文档。现在我想更新一个文档条目,并在django模板中检索文档ID,就像我在HTML中的条目旁边使用复选框一样。我想给每个框一个唯一的ID,我计划使用它作为文档ID。。因此如何在DJANGO模板中检索文档ID

您可以使用
\u ID
属性获取MongoDB文档的ID。但是,在Django模板中使用
{{object.\u id}}
会导致它抛出一个错误,说它找不到\u 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>

{%load appname_tags%}
这是您的mongodb记录id:{{object | mongo_id}

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

您可以使用
\u ID
属性获取MongoDB文档的ID。但是,在Django模板中使用
{{object.\u id}}
会导致它抛出一个错误,说它找不到\u 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>

{%load appname_tags%}
这是您的mongodb记录id:{{object | mongo_id}

请记住,应用程序应该位于
settings.py
中的
INSTALLED\u APPS
settings变量中,以便django加载模板标记。

显示一些代码,说明您是如何尝试执行此操作的,特别是卡在何处。记住StackOverflow不是一个论坛!请参阅此处的一些常见问题解答,并显示一些代码,说明您如何尝试执行此操作,以及在哪些方面遇到了问题。记住StackOverflow不是一个论坛!请参见此处的一些常见问题