【问题标题】:How can I pass the data from Django to a Shield UI Grid?如何将数据从 Django 传递到 Shield UI Grid?
【发布时间】:2017-09-20 06:31:09
【问题描述】:

我是使用 Django 和 Shield UI 的新手,我想做的是尝试为 shieldGrid 获取数据,请求从服务器获取远程数据。我有下一个代码。

这是我的 .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)

感谢您的帮助。

【问题讨论】:

    标签: json django gridview serialization shieldui


    【解决方案1】:

    确保您的 Grid 的 dataSource.schema 配置正确。可以在here找到有关它的文档。

    例如,如果您从服务器返回的数据包含对象列表,则无需设置其data 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-14
      • 2014-12-14
      • 1970-01-01
      • 2014-12-29
      • 2021-04-21
      • 2021-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多