2015-05-30 5 views
0

Как вернуть JSON из QuerySet - A.objects.all() для начальной загрузки таблицы (http://wenzhixin.net.cn/p/bootstrap-table/docs/examples.html):Как вернуть JSON в Джанго для начальной загрузки таблицы

<table data-toggle="table" data-url="data" data-cache="false" data-height="299"> 
    <thead> 
     <tr> 
      <th data-field="id">Item ID</th> 
      <th data-field="name">Name</th> 
     </tr> 
    </thead> 
</table> 

в просмотров:

data = serializers.serialize("json", A.objects.all()) 
return render(request, 'a.html', {'data': data}) 
+1

почему вы хотите вернуть JSON здесь? Вы можете напрямую отправлять вам данные без их сериализации и использовать теги шаблонов для отображения их на своей странице – Abhishek

ответ

1

Вы можете использовать Django JsonResponse. См. Документацию here.

Вы бы сделать что-то вроде этого:

def my_json_view(request): 
    context = {'foo': bar} 
    return JsonResponse(context) 

Смотрите также этот вопрос SO here.

Надеюсь, это поможет! :)

1

Решение:

В просмотров:

def test(request): 
    data = A.objects.all().values() 
    return render(request, 'test.html', {'data': data}) 

В шаблоне:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('#table').bootstrapTable({ 
      data:{{data|safe}} 
     });  
    }); 
</script> 

<table id="table"> 
    <thead> 
     <tr> 
      <th data-field="id">Item ID</th> 
      <th data-field="name">Name</th> 
     </tr> 
    </thead> 
</table> 
2

Существует 2 режима: сервер или клиент

Для режима сервера:

в utils.py:

from django.core.serializers import serialize 
import json 
def serialize_bootstraptable(queryset): 
    json_data = serialize('json', queryset) 
    json_final = {"total": queryset.count(), "rows": []} 
    data = json.loads(json_data) 
    for item in data: 
     del item["model"] 
     item["fields"].update({"id": item["pk"]}) 
     item = item["fields"] 
     json_final['rows'].append(item) 
    return json_final 

в views.py:

from django.http import JsonResponse 
json_send = serialize_bootstraptable(Model.objects.all()) 
return JsonResponse(json_send, safe=False)