Me gustaría filtrar los datos en Django (admin.py) con texto escrito en el cuadro de texto de entrada HTML. Necesito filtrar las empresas por ciudad en la que se encuentran y la lista de todas las ciudades es demasiado larga. Me gustaría reemplazar la lista de todas las ciudades en filtrar por una entrada de texto. He encontrado algo similar aquí http://djangosnippets.org/snippets/2429/ pero hay dos problemas:Cuadro de texto de entrada HTML en Django admin.py filtro
- autor no publicada models.py, por lo que es difficuilt cambiar el código para mis necesidades (sin comentarios) + clase
- se utiliza UserFieldFilterSpec (RelatedFilterSpec): pero necesito usar AllValuesFilterSpec en lugar de RelatedFilterSpec (más en el archivo django/contrib/admin/filterspecs.py), porque la lista de ciudades está en la misma clase que comapny (debe decirse por clase de ciudades y deben ser hacer referencia a la empresa por clave externa (relación ManyToMany), pero por alguna razón debe hacerse de esta manera)
parte importante de models.py ve algo como esto
class Company(models.Model):
title = models.CharField(max_length=150,blank=False)
city = models.CharField(max_length=50,blank=True)
y algo de admin.py
class CatalogAdmin(admin.ModelAdmin):
form = CatalogForm
list_display = ('title','city')
list_filter = ['city',]
Así que de nuevo, necesito: 1. En lugar de la lista de ciudades od mostrar un texto entrada en el filtro Django 2. Después de ingresar el nombre de la ciudad en esa entrada de texto, filtrar los datos por ciudad (solicitud de filtrado puede enviarse con algún botón de envío oa través de javascript)
Gracias yoy por todas las publicaciones.
Esto no es realmente lo que estaba buscando. Mi problema es mostrar el filtro de entrada de texto de trabajo. La característica de autocompletar es agradable y me gustaría agregarla más tarde. De todos modos, gracias por tu respuesta. – Jazzuell
ok, pensé esto por mi cuenta. Creé mi propio filtro en filterspecs.py (sé que es una manera desagradable de hacerlo). Si lo intenta de esta manera, tenga cuidado al registrar su filtro. Su filtro debe registrarse antes de los filtros del sistema. Que en models.py asigne su filtro para atribuirle que pertenece. En el filtro utilicé algo que cambia la URL publicada donde están los parámetros. El filtrado por una ciudad se realiza por ciudad = Praga, pero si desea filtrar por lista de filtros, use city__in = Prague, Wien, Dublin. Hay muchas formas más agradables de hacerlo (consultas, AJAX, ...) pero solo estoy aprendiendo. – Jazzuell