既にドキュメントを挿入した mongodb のコレクションがあります。ドキュメント エントリを更新し、django テンプレートでドキュメント ID を取得したいと考えています。HTML のエントリの横にチェックボックスを使用しているように、個々のボックスに、ドキュメント 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>
djangoがテンプレートタグをロードするには、アプリがのINSTALLED_APPS
設定変数に含まれている必要があることを忘れないでください。settings.py
于 2013-02-20T09:38:53.507 に答える