可能我还不明白urls.py是如何工作的…但是我不知道如何用数据表的“bServerSide”加载数据。。。我想我的url.py有问题。我使用Django,datatables.js,这是我的代码:
<table cellpadding="0" cellspacing="0" border="0" id="example1">
<thead>
<tr><th>Name</th></tr>
</thead>
<tbody></tbody>
</table>
<script type="text/javascript" language="javascript" class="init">
$(document).ready(function() {
$('#example1').dataTable( {
"bServerSide": true,
"sAjaxSource": "main.html/getdata_json",
"bProcessing": true,
} );
} );
</script>
def myajaxview(request):
report = []
start = request.GET['iDisplayStart']
length = request.GET['iDisplayLength']
query = name.objects.all() #or any kind of queryset
query = query[start:start+length]
for q in query:
report.append(json.dumps(q.nome_struttura))
json = json.dumps(report)
return HttpResponse(json, content_type='application/json')
urlpatterns = i18n_patterns('',
...
url(r'^getdata_json$', 'views.myajaxview'),
...
我不知道错误在哪里。你能帮帮我吗?
您应该尽量避免在多个地方编写url(遵循DRY原则),您可以给出一个name to your url,如下所示:
然后在HTML中使用Django内置模板标记url检索视图url:
然后在JS中,可以使用jQuerydata方法来检索URL(而不是对其进行硬编码):
另外,您可以将q.nome_struttura附加到报表数组中,在最终数组上使用json.dumps,如下所示:
一般来说,当您使用AJAX请求时,应该使用浏览器开发工具(如Firefox的Firebug或Chrome开发工具)来确切地查看哪些数据被传递到服务器以及响应如何进行。
对于您的信息,这里有一个third party Django app完全适合您的用例:它将Django与jQuery数据表集成到服务器端处理中。
相关问题 更多 >
编程相关推荐