Django数据表视图相关字段查找无效:istartswith



我试图渲染一个数据表使用django数据表视图,但它总是给出这个错误,当我试图搜索,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)  

好吧,我希望我的回答能帮助别人,因为我想现在回答这个问题已经太晚了。我面临着同样的问题,直到我发现我应该在模板中添加引用外键的data-name属性,如下所示:

数据名="ForeignKeyModel.ForeignKeyName"然后,数据表将以django可以接受的形式发送搜索语句(iconcontains或regex)。

查看这里的文档:https://django-rest-framework-datatables.readthedocs.io/en/latest/tutorial.html a-more-complex-and-detailed-example

最新更新