如何使用Django使用DataTables正确实现Ajax?

时间:2018-03-20 09:29:41

标签: python jquery ajax django datatables

我有一个数据库,我希望在我的Django应用程序中显示为数据表。但是,我在尝试将所需的模型数据解析为支持Ajax的模板时遇到了一些麻烦。

models.py

from django.db import models

class MyModel(models.Model):
    someAttr = models.CharField()

    def __unicode__(self):
        return self.someAttr

views.py

from django.shortcuts import render
from django.core import serializers
from .models import MyModel

def myModel_asJson(request):
    object_list = MyModel.objects.all()
    json = serializers.serialize('json', object_list)
    return render(request, 'template.html', {'json': json})

urls.py

from django.conf.urls import patterns, url

urlpatterns = patterns('myapp.views',
                    url(regex=r'^$',
                    view='myModel_asJson',
                    name='my_ajax_url'),
)

template.html

<table cellpadding="0" cellspacing="0" border="0" id="example">
     <thead>
         <tr><th>My Attr Heading</th></tr>
     </thead>
     <tbody></tbody>
</table>


<script type="text/javascript" language="javascript" class="init">
     $(document).ready(function() {
         $('#example').dataTable( {
             "processing": true,
             "ajax": {
                 "processing": true,
                 "url": "{% url 'my_ajax_url' %}",
                 "dataSrc": ""
             },

             "columns": [
                     { "data": "fields.someAttr" },
                     { "data": "pk" }
                 ]
         } );
     } );
 </script>

当我打开网页时,我遇到了一个错误,说明我的json无效。我已经验证了json实际上是有效的,但数据仍然没有显示在我的数据表中。

我不知道如何解决这个错误。非常感谢任何帮助,我真的想在我的django应用程序中实现ajax和datatables来显示我的模型数据。

0 个答案:

没有答案