2017-02-02 14 views
5

初心者プログラミングはここにあります。私は多くの行を持つモデルを持っており、私はjavascriptに各行を渡したいと思います。QuerySetはJSONシリアライズ可能ではありませんDjango

最初の試み:

Views.py

events = Events.objects.filter(user_id=user_id) // filter by user_id 
context = { 
      "email": request.user.email, 
      "login": True, 
      "objects": events, 
     } 
return render(request, 'fullcalendar/index.html', context) 

Eventsは、テーブルの名前であり、Iはeventsの各行に格納されます。 contextと呼ばれるディクテーションに渡され、それがテンプレートに渡されます。

{% for object in objects %} 
    <p>event.column_name</p> 
{% endfor %} 

、それはしかし、私はjavascriptのセクションでそれを行うことができない、正常に動作します:その後、私のテンプレートから、私はこのような何かをすることができました。

{% for object in objects %} 
    var date = object.date // assuming object has a column named date 
{% endfor %} 

二回目

だから私はいくつかの研究を行なったし、JSONを使用することにしました。

はViews.pyでは、私は次の変更を行わ:

return render(request, 'fullcalendar/index.html', {"obj_as_json": simplejson.dumps(context)}) 

を、これから、私はこれを行うことを望んだ:

var objects = {{ obj_as_json }} 

for object in objects 
    //Do some stuff 

しかし、私はエラーQuerySet is not JSON Serializable Djangoを得ました。だから私は、オブジェクトをシリアル化する方法を見上げて、次の変更を加えた:

data = serializers.serialize('json', events.objects.all()) 

しかし、私はエラー以下しまっ:'QuerySet' object has no attribute 'objects'

男を、theresのは、私がやりたいする簡単な方法であることになりました。何か案は?

答えて

2

代わりにこれを試してください:あなたが得たエラーメッセージがeventsがすでにクエリセットであることを語っている

data = serializers.serialize('json', events)

、それをより多くのものを試してみませんか理由はありません。

また、あなたの以前の試み再訪でした:あなたが実際にこのようにジャンゴobjectを使用する必要が

{% for object in objects %} 
    var date = object.date // assuming object has a column named date 
{% endfor %} 

を:あなたはobject前にそれをやっていた方法は、単にundefinedだろう

{% for object in objects %} 
    var date = {{ object.date }} 
{% endfor %} 

とエラーが発生するcannot read property date of undefined

関連する問題