2017-04-23 33 views
1

我是使用Django和Shield UI的新手,我試圖做的是試圖獲取shieldGrid的數據,請求從服務器獲取遠程數據。我有下一個代碼。如何將數據從Django傳遞到Shield UI Grid?

這是我的.js

$("#id_table_diagnosticos").shieldGrid({ 
        dataSource: { 
         remote: { 
          read: { 
           url: "/atender/ListadoDiagnosticos/", 
           dataType: "json", 
           operations: ["sort", "skip", "take"], 
           data: function (params) { 
            var odataParams = {}; 
            if (params.sort && params.sort.length) { 
             odataParams["$orderby"] = window.orderFields[params.sort[0].path].path + (params.sort[0].desc ? " desc" : ""); 
            } 
            if (params.skip != null) { 
             odataParams["skip"] = params.skip; 
            } 
            if (params.take != null) { 
             odataParams["top"] = params.take; 
            } 
            return odataParams; 
           } 
          } 
         }, 
         schema: { 
          data: "fields", 
          total: function (result) { 
           return result["odata.count"]; 
          }, 
          fields: window.orderFields = { 
          // "pk": { path: "pk" }, 
           "descripcion": { path: "descripcion" }, 
           "codigo": { path: "codigo" }, 
          } 
         } 
        }, 
        paging: true, 
        sorting: true, 
        columns: [ 
        // { field: "pk", title: "ID", width: 80 }, 
         { field: "descripcion", title: "Descripción", width: 180 }, 
         { field: "codigo", title: "Código", width: 100 }, 
        ] 
       }); 
      }); 

我model.py是

class ParametrosDiagnosticos(models.Model): 
descripcion=models.CharField(max_length=1000) 
codigo=models.CharField(max_length=100) 
sexo=models.CharField(max_length=10,default='Ambos') 
estado=models.CharField(max_length=100, default='Activo') 
estado_logico=models.IntegerField(default=1) 

和我view.py

def ListadoDiagnosticos(request): 
if request.user.is_authenticated: 
    if request.method=='GET' and request.is_ajax(): 
     objeto=ParametrosDiagnosticos.objects.all() 
     data = serializers.serialize('json', objeto, fields=('pk','descripcion','codigo')) 
     return JsonResponse(data,safe=False); 

到服務器的請求,做的不錯,這個問題當我返回數據時,我的瀏覽器控制檯上出現下一個錯誤。

shieldui-all.min.js:4 Uncaught TypeError: Cannot read property 'map' of undefined 
at e (shieldui-all.min.js:4) 
at init.fields (shieldui-all.min.js:5) 
at init.process (shieldui-all.min.js:5) 
at init._success (shieldui-all.min.js:5) 
at e (bundled.js:2) 
at Object.z.func.i.success (shieldui-all.min.js:4) 
at j (bundled.js:2) 
at Object.fireWith [as resolveWith] (bundled.js:2) 
at x (bundled.js:5) 
at XMLHttpRequest.b (bundled.js:5) 

謝謝你的幫忙。

回答

0

確保您的電網的dataSource.schema配置正確。關於它的文檔可以在here找到。

例如,如果從服務器返回的數據包含對象列表,則不需要設置其data屬性。

相關問題