可能我还不理解urls.py works...but我不知道如何用数据表的"bServerSide“来加载数据……我想我的urls.py出了点问题。我使用Django,datatables.js,这是我的代码:
main.html
<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>views.py
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')urls.py
urlpatterns = i18n_patterns('',
...
url(r'^getdata_json$', 'views.myajaxview'),
... 我不知道错误出在哪里。你能帮帮我吗?
发布于 2014-09-22 21:42:19
你应该尽量避免在多个地方写name to your url (遵循DRY原则),你可以给出一个urls,如下所示:
url(r'^getdata_json$', 'views.myajaxview', name='getdata_json')然后在HTML中使用Django内置模板标记url来检索视图url:
<table cellpadding="0" cellspacing="0" border="0" id="example1"
data-url="{% url 'getdata_json' %}">然后,在JS中,您可以使用jQuery data方法来检索网址(而不是硬编码):
<script type="text/javascript" language="javascript" class="init">
$(document).ready(function() {
$('#example1').dataTable( {
"bServerSide": true,
"sAjaxSource": $(this).data('url'),
"bProcessing": true,
} );
} );
</script>顺便说一下,您可以在最后一个数组上使用json.dumps,将q.nome_struttura附加到报表数组中,如下所示:
for q in query:
report.append(q.nome_struttura)
json = json.dumps(report)通常,当您使用AJAX请求时,您应该使用浏览器开发人员工具(如Firefox或Chrome开发人员工具的Firebug )来查看传递给服务器的确切数据以及响应的方式。
对于您的信息,有一个专门针对您的用例的third party Django app:即通过服务器端处理将Django与jQuery Datatables集成。
https://stackoverflow.com/questions/25975086
复制相似问题