entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Capturar ID de una etiqueta HTML en Django

Saludos. Cómo puedo hacer que Django detecte cuál elemento del menú (<nav>) se pulsó en la plantilla HTML.?
Quiero saber si el usuario hizo click en un menú y quiero poder detectar, bien sea el ID de la etiqueta " li " u otra cosa de dicha etiqueta HTML. Gracias.

2 Respuestas

1voto

ibrames Puntos970

Saludos. En curso guardo todo lo referente a un curso. Y en tipo, guardo solamente los tipos de curso.
Ya lo he solventado. Quedó así:

urls.py

url(r'^cursos/page/(\d{1,2})/$','cursos_view',name='vista_cursos'), ......

views.py

def cursos_view(request,pagina):

   pagina = int(pagina)
   tipoElegido = tipo.objects.select_related().filter(id=pagina)
   tipoNombre = tipo.objects.get(id=pagina).........

plantilla.html

<a href="#" class="dropdown-toggle">Programas Presenciales</a>
    <ul class="dropdown-menu" data-role="dropdown" style="display: block;">
        <li><a href="/cursos/page/3/">Cursos</a></li>
        <li><a href="/cursos/page/4/">Seminarios</a></li>
        <li><a href="/cursos/page/5/">Diplomados</a></li

... y así sucesivamente. La clave está en el número que le paso en la url. Doy el tema por solucionado. Muchas gracias por su prestancia. Este sitio es LO MAXIMO!

0voto

white comentado

Que bueno se haya resuelto, no olvides marcar tu respuesta como la solución para dar el tema como solucionado C:

1voto

white Puntos75840

creo que es trabajo para javascript si es que entendi lo que quieres hacer, no bastaria con:

$(document).ready(function(){
     $('#menu li a').click(function(){
        // this <- este elemento se pulso en el menu
        var li = $(this).parent('li'); // li del menu
        var id = $(li).attr('id'); // obtenemos el identificador
        // obtener mas cosas para "li", .html(), .attr(), etc
    });
});

detecta si se hizo click en un enlace del menu con identificador menu, eso suponiendo que tienes Jquery, lo tienes? quieres detectar el ID por el lado del cliente solamente? o planeas usarlo en el servidor?

0voto

Leonardo-Tadei comentado

y no sería más sinmple poner un A andentro del LI para enviar por GET el valor de la opción en la que se hace click?

...
<li><a href="pagina.html?opcion=3">opcion 3</a></li>
...

0voto

white comentado

lo que sucede es que no se si su propósito es jugar en el servidor o en el cliente, de ser el servidor tu opción es mas que suficiente. mi respuesta fue por el lado del cliente por que menciona que desea el id y otras cosas del elemento li.

0voto

Leonardo-Tadei comentado

Cómo la pregunta es respecto a Django, que corre del lado del servidor, asumí que quería saber de dónde venía el click en el servidor...

1voto

ibrames comentado

Es decir, tenemos un NAV con varios LI, los cuales cada uno representa un tipo de curso (Taller, Seminario, Especialización, etc). Quiero que cuendo el usuario haga click en un LI, Django lo detecte y muestre en mi plantilla "cursos.html" todo lo referente a ese tipo de curso que el usuario eligió. Mi base de datos es así:

class tipo(models.Model):
    nombre = models.CharField()

class curso(models.Model):
        nombre   = models.CharField(max_length=100)
        tipo     = models.ForeignKey(tipo)

Mi idea era que si puedo detectar el tipo de curso por el menu NAV, presentar la plantilla cursos.html con todo el contenido referente a ese tipo de curso exclusivamente .

Espero haberme sido más explícito y disculpen, es que soy nuevo en Django.

1voto

white comentado

Qué guardas en los campos "nombre" y "tipo"? son los nombres de los talleres que mencionas acaso usados para el menu? haber si entiendo, quieres desde las url: url.com/talleres, url.com/seminario obtener el id (tipo) ?
que es todo el contenido referente? viene desde una base de datos ese contenido?

PD: en donde quieres "capturar el id"? en la vista o en el modelo? (views.py | models.py)

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta