1

テンプレートに入力するために使用したいオブジェクトのクエリ セットがあります。私が持っている1つのビューは終了します

return render_to_response('entry.json', {'entry_list':r}, mimetype="application/json; charset=utf-8")

ただし、HTTPResponse を返すことなく、このようなテンプレートを使用して json にシリアル化できるようにしたいと考えています。疑似コードでは、これは次のようになります。

render('entry.json', {'entry_list':r}) #returns a string with the template entry.json

これは可能ですか?もしそうなら、どのように?

4

3 に答える 3

5

@HankGayが言ったことは正しいですが、Djangoを正しく使用している場合でも、HttpResponseを返さずにテンプレート応答を取得したい場合があります。

これを読んでください:コンテキストのレンダリング

>>> from django.template import Context, Template
>>> t = Template("My name is {{ my_name }}.")

>>> c = Context({"my_name": "Adrian"})
>>> t.render(c)
"My name is Adrian."

>>> c = Context({"my_name": "Dolores"})
>>> t.render(c)
"My name is Dolores."

それはあなたが求めているものですか?

于 2012-04-09T20:06:58.593 に答える
3

Django には、このための組み込みのショートカットが用意されています。

https://docs.djangoproject.com/en/dev/ref/templates/api/#the-render-to-string-shortcut

何を達成しようとしているのかよくわかりませんが、JSON を HTTPResponse として返すことができます。オブジェクトを jason にシリアル化し、テンプレートを使用せずに返すことができます。

于 2012-04-09T20:16:54.823 に答える
0

HTTPリクエストを処理していない場合、正直なところ、Djangoを使用することはあまり意味がありません。Jinja 2を調べて、Djangoと共通する多くの単純なテンプレートエンジンを探し、 SQLAlchemyを調べて、Djangoと同等かそれ以上のORMを探します。

于 2012-04-09T20:02:53.517 に答える