Cómo relacionar 'Provincia' > 'Departamento' > 'Localidad' > 'Zona' en Django

Es muy común la necesidad de relacionar éstos modelos en Django para algún desarrollo que debamos sacar andando. Por supuesto, generé el modelo de datos de la aplicación para lo cual Django te lo hace muy sencillo. Todo venía de un modo casi trivial hasta que necesité crear una vista del tipo Generic View para el alta de un inmueble. El mismo requería setear las relaciones: 'Provincia' > 'Departamento' > 'Localidad' > 'Zona'. Pero las vistas en Django, del tipo Generic View no permiten acceder a modelos relacionados entre si en más de un nivel de profunidad, por ej.: sólo podía relacionar: 'Zona' > 'Localidad'. Por otro lado, el filtro debía hacerse al revés, desde: 'Provincia' > 'Departamento' > 'Localidad' > 'Zona' y no así 'Zona' > 'Localidad' > 'Departamento' > 'Provincia'.
Es aquí cuando vino a mi salvación "Dajax".

Seguí al pie la letra la instalación / configuración de:
http://wiki.github.com/jorgebastida/django-dajax/

Y del sgte. sitio obtuve el ejemplo: 'País' > 'Provincia': http://www.dajaxproject.com/forms/

Similar a lo que necesitaba, pero imcompleto. Pués faltaba incorporar relaciones y que los datos sean obtenidos de una base de datos y no desde una variable.

A continuación incorporé los cambios antes mencionados requeridos: las relaciones 'Provincia' > 'Departamento' > 'Localidad' > 'Zona' obtenidos de una base de datos.

############
## ajax.py ##
############
from dajax.core import Dajax
from AppInmo.models import Provincia, Departamento, Localidad, Zona

def cargar_provincias(request)
--dajax = Dajax()
--provincias = Provincia.objects.all()
--out = ""
--for provincia in provincias:
----out = "%s

2 comentarios:

nao_nick dijo...

Saludos estoy siguiendo los pasos que pones pero me sale un error:

Caught an exception while rendering: 'module' object has no attribute 'get_media_prefix'

Exception Type: TemplateSyntaxError
Exception Value:

Caught an exception while rendering: 'module' object has no attribute 'get_media_prefix'

Exception Location: /usr/local/lib/python2.6/dist-packages/django/template/debug.py in render_node, line 81

Al parecer es un error en la linea donde se pone:

{% dajax_js_import %}

esa es la linea que genera el error y la pregunta es si sabes como solucionarlo, hay alguna otra forma de hacer lo mismo pero con el dajaxice o algo así que version usas de dajax o alguna propuesta

Yanoksy D. Yero dijo...

Tengo problemas con los acentos y el dajax, alguna idea de como resolver eso?