#jquery #django #datatable
Вопрос:
Я пытаюсь реализовать таблицу данных на сервере с помощью Django.Мои данные передаются на сторону клиентов с сервера(как я проверил console.log(данные)), но они не отображаются в таблице. Если бы кто-нибудь из вас, ребята, мог помочь мне в этом, я был бы очень признателен. Заранее спасибо!
Шаблон:
lt;div class="container"gt; lt;div class="row"gt; lt;div class="col-md-12"gt; lt;table id="example" class="display" style="width:100%"gt; lt;theadgt; lt;trgt; lt;thgt;Uploaderlt;/thgt; lt;thgt;Main Categorylt;/thgt; lt;thgt;Sub Categorylt;/thgt; lt;thgt;Product Namelt;/thgt; lt;thgt;Product Pricelt;/thgt; lt;thgt;Brand Namelt;/thgt; lt;thgt;In Stocklt;/thgt; lt;thgt;Product Numberlt;/thgt; lt;thgt;Warrantylt;/thgt; lt;thgt;Uploadedlt;/thgt; lt;thgt;Imagelt;/thgt; lt;!-- lt;thgt;Actionlt;/thgt; --gt; lt;/trgt; lt;/theadgt; lt;tbodygt; lt;trgt; lt;tdgt;lt;/tdgt; lt;tdgt;lt;/tdgt; lt;tdgt;lt;/tdgt; lt;tdgt;lt;/tdgt; lt;tdgt;lt;/tdgt; lt;tdgt;lt;/tdgt; lt;tdgt;lt;/tdgt; lt;tdgt;lt;/tdgt; lt;tdgt;lt;/tdgt; lt;tdgt;lt;/tdgt; lt;tdgt;lt;/tdgt; lt;/trgt; lt;/tbodygt; lt;/tablegt; lt;/divgt; lt;/divgt; lt;/divgt;
Скрипт:
$(document).ready(function () { $('#example').DataTable({ responsive: true, "serverSide": true, "processing": true, "ajax": { url: '{% url "mainTableData" %}', success: function(data){ console.log(data) }, error: function (error){ console.error(error) } }, }); });
Views.py:
def mainTableData(request): ajax_response = {} search_values = [] fields = ['v_user__username', 'v_main_category__cat_name', 'v_sub_category__sub_cat', 'v_product_name', 'v_product_price', 'v_brand_name', 'v_in_stock', 'v_product_number', 'v_product_warranty', 'v_created' ] for i in range(1, 10): value = request.GET.get('columns[' str(i) '][search][value]') search_values.append(value) products = VendorProduct.objects.filter(reduce(AND, (Q(**{fields[i] '__icontains': value} ) for i, value in enumerate(search_values)))).values_list('v_user__username', 'v_main_category__cat_name', 'v_sub_category__sub_cat', 'v_product_name', 'v_product_price', 'v_brand_name', 'v_in_stock', 'v_product_number', 'v_product_warranty', 'v_created').order_by('-id') # Add paginator paginator = Paginator(products, request.GET.get('page_length', 3)) showing_rows_in_current_draw = request.GET.get('length') products_list = paginator.get_page(showing_rows_in_current_draw) data = list(products_list) ajax_response['draw'] = 1 ajax_response['recordsTotal'] = len(products) ajax_response['recordsFiltered'] = 3 ajax_response['data'] = data return JsonResponse(ajax_response, safe=False)