Skip to content

xivote/django-jquery-ajax-combobox-admin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

DJANGO Jquery Ajax Combobox Admin

Django Jquery Widget que reemplaza los clásicos combobox y los sustituye por un cuadro de texto con función de autocompletar y selección mediante desplegable. Reemplaza todos los combos del admin de Django. También puede usarse en formularios personalizados.

image

Dependencias

JQUERY

Definir las siguientes variables en el settings

  • Añadir la aplicación: django_jquery_ajax_combobox_admin
  • Variable que activa/desactiva los combos en DjangoAdmin: USE_ADMIN_COMBOBOX
  • Dirección completa del fichero javascript de Jquery: JS_JQUERY_URL
  • Dirección completa del fichero CSS de Jquery: CSS_JQUERY_URL
  • Dirección base de los ficheros del widget (HOST_URL + "django_jquery_ajax_combobox_admin"): AJAX_COMBOBOX_URL
Ejemplo settings.py
#Añadir aplicación
INSTALLED_APPS = list(INSTALLED_APPS)
INSTALLED_APPS.append('django_jquery_ajax_combobox_admin')
INSTALLED_APPS = tuple(INSTALLED_APPS)

#Activar combos en DjangoAdmin
USE_ADMIN_COMBOBOX = True

#URLS necesarias
JS_JQUERY_URL = MEDIA_URL + "/jquery-ui-1.7.2.custom/js/jquery-1.3.2.min.js"
CSS_JQUERY_URL = MEDIA_URL + "/jquery-ui-1.7.2.custom/css/ui-lightness/jquery-ui-1.7.2.custom.css"
#Sustituye http://0.0.0.0:8000/ por tu HOST_URL
AJAX_COMBOBOX_BASE_URL = "http://0.0.0.0:8000/django_jquery_ajax_combobox_admin"

Copiar la carpeta django_jquery_ajax_combobox_admin a tu proyecto

Copiar la carpeta django_jquery_ajax_combobox_admin al directorio raíz de tu proyecto.

Añadir al fichero urls.py de tu proyecto

urlpatterns += patterns('',
    (r'^django_jquery_ajax_combobox_admin/', include('django_jquery_ajax_combobox_admin.urls')),
)

Uso en formularios

Python
from django_jquery_ajax_combobox_admin.widgets import AjaxComboBoxWidget

AjaxComboBoxWidget(model=ModelClass, attrs={"width": 500, "field": "nombre", "search_field": "nombre"})

Options

  • model: clase del modelo del que se obtienen los datos.
  • attrs: diccionario con la configuración del widget.
attrs
Key Tipo Por defecto Descripción
url string 'settings.AJAX_COMBOBOX_BASE_URL + 'json/json_api' URL donde se generar los datos JSON
field string 'unicode' Campo que se mostrará en el combo. Se puede usar "unicode" si quiere mostrarse la representación unicode de los objetos.
base_query string '' Filtro base que se aplica siempre primero a los resultados del combo. Ej: codigo__startswith='41'
search_field string =field Campo de búsqueda. Se puede usar "admin_search_fields" para buscar en los campos Model.Admin.search_fields. Acepta campos separados por coma. Ej: 'id, name, job'
and_or string 'OR' Tipo de consulta sobre los search_field (AND / OR)
order_by mixed =search_field Los campos de ordenación se indican separados por coma y el sentido de ordenación (ASC / DESC) al final separado por un espacio. Ej: 'name DESC', ['name ASC', 'age DESC']
lang string os.environ["LANG"] Idioma de los mensajes (se intenta obtener del sistema o se elige inglés) ('de', 'en', 'es', 'pt-br')
per_page number 20 Nº de elementos por página
navi_num number 5 Números de página que se muestran
button_img string settings.AJAX_COMBOBOX_BASE_URL + '/img/combobox_button.png' Imagen del icono que expande la lista
loading_img string settings.AJAX_COMBOBOX_BASE_URL + '/img/ajax-loader.gif' Sustituye a button_imagen mientras se expande la lista
sub_info mixed False Muestra un subpanel junto a cada opción del combo (True / False / 'simple'). Por defecto: False.
sub_as dict {} Diccionario para mostrar un alias en el subpanel en lugar del nombre del campo. Ej: {"name": "Nombre", "code": "Código"}
show_field string '*' Campos que se muestran en el subpanel. Ej: 'id, job, age'
hide_field string None Campos que se ocultan en el subpanel.

License

MIT

Author

Sergio Ruiz Bens

Quotations

This plug-in use a modified version of jquery.ajax-combobox. Yuusaku Miyazaki

Usage: jquery.ajax-combobox