django过滤器没有过滤
我使用django过滤器和django-tables2。 这张桌子运转良好,在屏幕上显示记录。 但当我点击过滤按钮时,什么也没发生。 请参阅下面的代码和图片 tables.pydjango过滤器没有过滤,django,django-tables2,django-filters,Django,Django Tables2,Django Filters,我使用django过滤器和django-tables2。 这张桌子运转良好,在屏幕上显示记录。 但当我点击过滤按钮时,什么也没发生。 请参阅下面的代码和图片 tables.py class servicotable(tables.Table): class Meta: model = servico fields = ( 'id', 'dat_servico',
class servicotable(tables.Table):
class Meta:
model = servico
fields = (
'id',
'dat_servico',
'tiposervico',
'num_protocolo',
)
class filteredservicolistview(SingleTableMixin, FilterView):
table_class = servicotable
model = servico
filterset_class = servicofilter
过滤器.py
class servicofilter(django_filters.FilterSet):
dat_servico = django_filters.DateFromToRangeFilter()
class Meta:
model = servico
fields = ['num_protocolo', 'dat_servico', 'statusservico', 'tiposervico', 'usuario']
views.py
def consulta_create(request, id=None):
queryset = servico.objects.all()
f = servicofilter(request.GET, queryset=queryset)
table = servicotable(f.queryset)
table.paginate(page=request.GET.get('page', 1), per_page=25)
RequestConfig(request).configure(table)
context = {
"filter": f,
"lista": table,
}
return render(request, 'consulta/consultateste.html', context)
consultateste.html
{% load render_table from django_tables2 %}
{% load bootstrap3 %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% if filter %}
<form action="" method="get" class="form form-inline">
{% bootstrap_form filter.form layout='inline' %}
{% bootstrap_button 'filter' %}
</form>
{% endif %}
{% render_table lista 'django_tables2/bootstrap.html' %}
</body>
</html>
再看一看,我认为您需要更改table=servicotablef.querysetto table=servicotablef.qs FilterSet.qs是具有已筛选查询集的属性。queryset存储传递到对象中的queryset,因此在本例中,所有
作为补充说明,我认为使用camelcasing作为对象名来区分它们与函数可能会对您的代码有所帮助。所说的“不过滤”,是指当您单击“过滤”按钮时,什么都没有发生吗?如果是这样,请检查页面上是否存在导致JS失败的Javascript错误。我的ConsultStateSte.htmlGreat中没有任何Javascript!!!!!成功了!!!!!谢谢现在,我有一个字段可以选择一行,但我不知道如何在我的视图中获取de id number.py。选择一行是什么意思?您似乎拥有该字段,以便有人可以输入该项的ID,并将其筛选到该行。queryset中的任何对象都有一个ID。如果对第一个项queryset[0]进行切片,则ID,您将获得其数据库id号,除非您另有说明,否则它将自动递增。在my views.py中,如果请求,我将执行if request.method='POST':printids当有人选择一行时,您是否将此作为表单提交?在这种情况下,您需要将其作为POST参数传递,并从POST字典中获取它。你应该看到