2012-04-09 19 views
1

テンプレートを設定するためにオブジェクトを使用するクエリセットがあります。私はHTTPResponseはを返すことなく、このようなテンプレートをJSONにシリアライズできるようにしたいと思いますが、私が持っている一つのビューはDjangoのテンプレートの文字列ですが、HTTPResponseを返さない

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

で終わります。疑似コードの場合、

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

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

答えて

3

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

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

私は非常にあなたが達成しようとしているのか理解していない、しかし、あなたは自分のHTTPResponseはとしてJSONを返すことができます。オブジェクトをjasonにシリアル化し、テンプレートを使用せずに返すことができます。

0

HTTPリクエストを処理していない場合、正直なところDjangoを使用するのはあまり意味がありません。 Djangoで共通するたくさんの単純なテンプレートエンジンの場合はJinja 2、DjangoならORMの場合はSQLAlchemyとなります。

+0

私はDjangoでHttpRequestsを処理していますが、私は今もPistonで遊んでいます。 – SK9

+1

@ SK9あなたがPistonを使用していて、JSON本体のHTTPレスポンスを返すだけなら、おそらく['Emitters'](https://bitbucket.org/jespern/django-piston/wiki/)を調べるべきです。ドキュメント#!エミッタ)。 –

+0

これは決してその質問に対する答えを提供しません。彼は、ジャンゴが最良の選択であるかどうかではなく、ジャンゴでそれを行う方法を尋ねた。 – Shayne

4

あなたがDjangoを正しく使用していても、HttpResponseを返すことなくテンプレートレスポンスを得たいと思うかもしれませんが、@ HankGayは正しいと言います。

は、これを読んで:Rendering a context

>>> 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." 

はあなたが後にしているものということですか?

関連する問題