0

我正在尝试使用django datatables view呈现数据表,但是当我尝试搜索时,它总是会出现此错误 django.core.exceptions.FieldError: Related Field got invalid lookup: istartswith。我正在使用的模型具有另一个模型的 ForeignKey。我已经尝试了我找到的所有解决方案。他们不工作!

我试过https://datatables.net/forums/discussion/55916/searching-on-columns-with-data-null

https://bitbucket.org/pigletto/django-datatables-view/issues/5/order_columns-doesnt-work-with-foreign

https://github.com/izimobil/django-rest-framework-datatables/issues/58

javascript

var customerTable = $(DOMstrings.customerTable ).DataTable({        
      "processing": true,        
      "searching": true,
      'pageLength': 30,
      //"lengthMenu": [ 50, 100, 150, 200 ],
      //"colReorder": true,
      "scrollY": 500,
      //"scrollX": 1500,
      //"deferRender": true,
      "responsive": true, 
      "ordering": true, 
      "paging": true,   
      "lengthChange": true,  

      "ajax": {
          "url": customerListURL,                
      },
      "serverSide": true,

      "columns": [        
          { "fields": "id" },                   
          { "fields": "customer.first_name"},
          { "fields": "amount" },
          { "fields": "date_time" },                  
          //{ "fields": "picture" },                               
          //{ "searchable": "false" },                                   
      ],
      dom: 'Bfrtip',
      buttons: [
          'colvis',            
          'pageLength',
      ],        
  });   

意见

class CustomerListJsonView(LoginRequiredMixin, BaseDatatableView):
    """This is the view used by Datatables.net to render the Datatable"""
    # The model we're going to show
    model = Customer

    columns = ['id', 'customer', 'amount', 'date_time']   

    # This defines columns that will be used in sorting
    order_columns = ['id', 'customer', 'amount', 'date_time']
    max_display_length = 100
    
    def render_column(self, row, column):
        # We want to render phone number as a custom column        
        if column == 'date_time':                                    
            return row.date_time.strftime('%b %d %Y %I:%M %p') 
        else:            
            return super(CustomerListJsonView, self).render_column(row, column)  
4

0 回答 0