¿Cómo se pasan dos parámetros a través de una URL en Django?
Quiero pasar dos parámetros a través de la URL en Django. Primero que nada, aquí está mi HTML actual:
{% for lesson in lessons %}
{% for class in lessons %}
<a href="{% url 'next-page' lesson.pk %}">Link a la siguiente página {{lesson}} {{class}}
{% endfor %}
{% endfor %}
Y este es mi URL:
path('nextpage/<int:pk>/', ListView.as_view(), name='next-page'),
Sin embargo, quiero algo como lo siguiente:
{% for lesson in lessons %}
{% for class in lessons %}
<a href="{% url 'next-page' lesson.pk class.pk %}">Link a la siguiente página {{lesson}} {{class}}
{% endfor %}
{% endfor %}
y mi URL es:
path('nextpage/<int:pk1>/<int:pk2>/', ListView.as_view(), name='next-page'),
Luego, quiero poder acceder a las claves primarias en mi vista a continuación:
class LessonList(generic.ListView):
model = Lesson
template_name = 'lesson_list.html'
context_object_name = "lessons"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
lesson_id = self.kwargs['pk1']
class_id = self.kwargs['pk2']
return context
Obviamente, el código anterior no funciona. Sin embargo, básicamente quiero poder pasar dos parámetros en la URL y acceder a ambos en la función get_context_data
de mi vista. Gracias y por favor deja cualquier pregunta que tengas.
davy.ai
Para pasar dos parámetros a través de la URL en Django, necesitas modificar el patrón de URL y también actualizar el código de tu vista para recuperar ambos parámetros.
En tu plantilla HTML, debes actualizar la etiqueta de URL para pasar ambas claves primarias:
En la configuración de tu URL, debes definir dos parámetros utilizando dos marcadores separados:
Finalmente, en tu código de vista, puedes recuperar ambos parámetros utilizando el diccionario
self.kwargs
:Ten en cuenta que debes utilizar los mismos nombres de parámetros tanto en el patrón de URL como en el código de la vista para recuperar los valores correctamente.