【发布时间】:2016-09-17 20:38:00
【问题描述】:
我有一个模板,usersummary.html。它依靠 URL 参数显示有关特定用户的详细信息。我想在数据表中显示一些数据,这将涉及基于相同 URL 参数显示数据的 AJAX 数据表。
使用 django-datatables-view:
views.py:
from django_datatables_view.base_datatable_view import BaseDatatableView
def usersummary(request, id):
return render(request, 'app/usersummary.html')
class testdatatableJSON(BaseDatatableView):
model = User
columns = ['item1', 'item2']
# This class uses django-datatables-view
# It returns JSON for the datatable to consume via AJAX
# I'd like to filter it to display only data relating to the user id defined in the url for template usersummary.html
urls.py
url(r'^(?P<id>\d+)/$', views.usersummary, name='usersummary'),
url(r'^testdatatable/$', testdatatableJSON.as_view(), name='testdatatable')
JS
$(document).ready(function() {
$('#table').DataTable({
"ajax": "{% url 'testdatatable' %}"
# This controls table in usersummary.html template
我认为像下面这样向 testdatatableJSON 类添加一个方法会起作用,但可惜不是(可能是因为通过 AJAX 使用时实际上没有传入 id 参数)。如果我传入一个硬编码示例来测试它,比如“id=1”,它就可以正常工作。
def get_initial_queryset(self, **kwargs):
return User.objects.filter(id=self.kwargs['id'])
有什么想法吗?
谢谢!
【问题讨论】:
标签: jquery python ajax django datatable