The problem that shows me when trying to filter data with django I get this error:
my view is as follows:
# -*- coding: utf-8 -*-
from functools import reduce
from django.contrib.messages.views import SuccessMessageMixin
from django.core.urlresolvers import reverse_lazy
from django.db.models import Q
from django.views.generic import CreateView, UpdateView, ListView, DeleteView
from .models import Identificador
class RBMidentificadorListView(ListView):
model = Identificador
template_name = 'identificadores/lista.html'
context_object_name = 'lista_identificador'
def get_context_data(self, **kwargs):
ctx = super(RBMidentificadorListView, self).get_context_data(**kwargs)
ctx['search_url'] = 'lsitar_identificado'
return ctx
def get_queryset(self):
queryset = super(RBMidentificadorListView, self).get_queryset()
# En el admin_base.jade tenemos un input#search(name='q', type='search')
# usamos la sig linea para obtener la consulta solicitada.
q = self.request.GET.getlist('q')
terms = [term for term in q]
if q: # Si el campo no esta vacio, construimos el filtro
queryset = reduce(operator.or_,
(Identificador.objects.filter(Q(clave__contains=t) \
| Q(nombre__contains=t)) \
for t in terms
)
)
return queryset
urls:
# -*- coding: utf-8 -*-
from django.conf.urls import url
from .views import *
urlpatterns = [
url(r'^new/$', RBMidentificadorView.as_view(), name='register_identificador'),
url(r'^edit/(?P<pk>\d+)/$', RBMidentificadoresEditView.as_view(), name='editar_identificador'),
url(r'^list/$', RBMidentificadorListView.as_view(), name='lsitar_identificador'),
url(r'^dele/(?P<pk>\d+)/$', RBMidentificadorDeleView.as_view(), name='eliminar_identificador'),
]
html:
{% if search_url %}
<li> <!-- solo donde se tengan registros-->
<form action='{% url search_url %}' method="get">
<div class="input-field">
<input id="search" type="search" name='q'>
<label for="search"><i class="material-icons">search</i></label>
<i class="material-icons">close</i>
</div>
</form>
</li>
{% endif %}
I hope you can help me