2012-05-08 4 views
0

良いafternoon..iは、このようなクラスでモデルを持っていますjqueryスクリプトをグラフにプロットする。 その配列をシリアル化するコードは何ですか? 私はあなたがモデルでこれを行うために探している場合は、このような何かがうまくいくDJANGOのsimplejson

答えて

1

@ ninefingersの応答に続いて。あなたの質問は、ダンプされたjson文字列をjQueryプラグインで使用できるようにする方法を目的としていると思います。テンプレートで

# views.py 

def my_view(request): 
# do stuff 
num = reportage_instance.get_num() 
num_json = simplejson.dumps(num) 
return render(request, 'template.html', { 
    'num_json': num_json, 
}) 

Javascriptの変数

# template.html 

<html> 
<body> 
<script> 
var NUM_JSON = {{num_json|safe}}; 
myScript.doSomething(NUM_JSON); 
</script> 
</body> 
</html> 

は今、あなたはNUM_JSON変数との定期的なJSを呼び出すことができるよう、あなたはJSON形式のOBJ利用できるようにします。

+0

この回答はありがたいですが、今私はjqplotのプラグインを使用したいと思っています: "http://www.jqplot.com/tests/data-renderers.php"...私のnum_json配列をプロットするウェブサイト? – dottorg

+0

ドキュメントを読むと、$ .jqplotの2番目のパラメータはエンドポイント文字列またはjsデータのいずれかになります。したがって、$ .jqplot( 'mychart'、NUM_JSON);を試してください。 –

0

..応じるすべての人々への事前のおかげで..私は明確だった願っています:

# if this were a models.py file: 

import simplejson 
# other django imports: 

class SomeModel(models.Model): 

    property = models.SomeField()... 

    def some_function(self): 
     num = [] 

     # full num 

     simplejson.dumps(num) 

だろうとnumをjsonの文字列表現にダンプします。次に、これをファイルに戻したり書き込んだりすることができます。ビューから

あなたは選択肢を持っている - しかし、あなたのビューでは、あなたがこれを行う可能性があります処理するためにいくつかのJSONを返すAjaxのビューである場合:

# views.py 

# ... 

def my_ajax_call(request, model_pk): 
    try:  
     mymodel = SomeModel.get(pk=model_pk) 
    except SomeModel.NotFoundException as e: 
     return HttpResonse("Unknown model", status=404) 
    else: 
     return HttpResponse(mymodel.some_function()) # returns simplejson.dumps(num) 

これはその後、JavaScriptでテンプレートから使用することができます - 他答えはあなたがそれに近づく方法を示しています:)

+0

まずはお返事ありがとうございます。 simplejsonですが、私は同じmodels.pyファイルの関数で直接行いますか? 今、ベクトル "num"をグラフ化するために、テンプレート内で次のjqueryプラグインを使用したいと考えています。 スクリプトを変更するにはどうすればよいですか? http://www.jqplot.com/tests/data-renderers.php – dottorg

+0

@dottorgはあなたのために少しだけ私の答えを埋めました - それはまったく助けになりますか? –

関連する問題