2017-04-06 12 views
0

DBからリストを取得し、それをjs連想配列に変換する必要があります。 JSでdbからjs配列のオブジェクトを持つDjangoリスト

def lesson(request, block_id): 
block_name = Block.objects.get(id=block_id) 
item = Item.objects.filter(item_id=block_id) 

item_json = json.dumps(item) 

context = { 
    "item_block": block_name, 
    "item_json": item_json 
} 
return render_to_response('item_page.html', context) 

私は

<script> 
    var counts = JSON.parse("{{ item_json }}"); 
    console.log(counts) 
</script> 

を持っているしかし、私はオブジェクトと配列を取得し、jsの中でそれを使用することができますどのようにエラー

<QuerySet [<Item: Item object>, <Item: Item object>, <Item: Itemobject>]> 

がありますか?

+0

チェックhttp://stackoverflow.com/questions/16790375/django-object-is-not-jsonを-serializable。それは問題を解決するはずです。 – rkatkam

答えて

0

djangoクエリーセットをシリアル化するには、django serializersを使用する必要があります。あなたのコードは次のようになります。

from django.core import serializers 

def lesson(request, block_id): 
    block_name = Block.objects.get(id=block_id) 
    item = Item.objects.filter(item_id=block_id) 

    item_json = serializers.serialize('xml', item) 

    context = { 
     "item_block": block_name, 
     "item_json": item_json 
    } 
    return render_to_response('item_page.html', context) 

注意をシリアライズされたオブジェクトは、次の形式があること:

{ 
    "model": "app_name.model_name", 
    "pk": 1, 
    "fields": {"field1": 1, "field2": 2, etc..} 
} 
関連する問題