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.
- 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
#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 al directorio raíz de tu proyecto.
urlpatterns += patterns('',
(r'^django_jquery_ajax_combobox_admin/', include('django_jquery_ajax_combobox_admin.urls')),
)
from django_jquery_ajax_combobox_admin.widgets import AjaxComboBoxWidget
AjaxComboBoxWidget(model=ModelClass, attrs={"width": 500, "field": "nombre", "search_field": "nombre"})
- model: clase del modelo del que se obtienen los datos.
- attrs: diccionario con la configuración del widget.
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. |
This plug-in use a modified version of jquery.ajax-combobox. Yuusaku Miyazaki
Usage: jquery.ajax-combobox