Hola a todos, quizás es un poco tarde para responder ésta duda, pero
al menos queda respondido para consultas futuras.
En mi caso, yo necesitaba, setear en un formulario: Provincia >>
Departamento >> Localidad, pero el Dajax solo satisface la relación
entre dos modelos. El código a continuación lo modifiqué un poco para
que relacione tres modelos. Sería análogo el cambio para N modelos.
== template.html ==
...
<select name="provincia" id="provincia"
onchange="Dajax.AppInmo_update_combo_departamento
({'option':this.value})" size="1">
<option value="0">Entre Rios</option>
<option value="1">Santa Fe</option>
<option value="2">Misiones</option>
</select>
<select name="departamento" id="departamento"
onchange="Dajax.AppInmo_update_combo_localidad({'option':this.value})"
size="1">
</select>
<select name="localidad" id="localidad" size="1"> </select>
...
== ajax.py ==
...
# Los campos de "options" son departamentos.
def update_combo_departamento(request):
dajax = Dajax()
options = [ ['d er 1 ','d er 2','d er 3'],
['d sf 1','d sf 2','d sf 3'],
['d m 1','d m 2'],]
out = ""
indice = 1
for o in options[int(request.POST['option'])]:
out = "%s<option value='%s'>%s" % (out,indice,o)
indice = indice + 1
dajax.assign('#departamento','innerHTML',out)
return dajax
# Los campos de "options" son localidades
def update_combo_localidad(request):
dajax = Dajax()
options = [ ['l er 1 ','l er 2','l er 3'],
['l sf 1','l sf 2','l sf 3'],
['l m 1','l m 2', 'l m 3'],]
out = ""
indice = 1
for o in options[int(request.POST['option'])]:
out = "%s<option value='%s'>%s" % (out,indice,o)
indice = indice + 1
dajax.assign('#localidad','innerHTML',out)
return dajax
...
Seguramente el código pueda optimizarse muchísimo, por ejemplo hacer
todo en una única función.
Saludos.
Analía Lorenzatto.
On 15 dic 2009, 02:05, wilson coronado <tolerance...@gmail.com> wrote:
> hola
> estoy tratando de hacer un combobox dependiente(de esos que cuando escojes
> la region al otro lado te aparecen solo las ciudades que estan en esa
> region) y he tenido problemas para implementarlo dentro de el Admin
> he encontrado esto (http://www.dajaxproject.com/forms/) que es básicamente
> lo que necesito. Pero no estoy seguro de algunas partes del ejemplo. Como
> por ejemplo la parte de ajax.py solo aparece la parte de la ciudades y me
> pregunto donde podría ir la parte de los países.
> la otra dude aparece cuando quiero colocarlo en mi admin la verdad es que no
> tengo mucha idea de como puedo colocarlo dentro dentro del admin.py (va en
> un model.from lo que no estoy muy seguro).