Как передать два параметра через url в django

Я хочу передавать два параметра через url в django. Во-первых, вот мой текущий html:

{% for lesson in lessons %}
{% for class in lessons %}
    <a href="{% url 'next-page' lesson.pk %}">Link to next page {{lesson}} {{class}}</a>
{% endfor %}
{% endfor %}

А это мой url:

path('nextpage/<int:pk>/', ListView.as_view(), name='next-page'),

Однако я хочу что-то вроде следующего:

{% for lesson in lessons %}
{% for class in lessons %}
    <a href="{% url 'next-page' lesson.pk class.pk %}">Link to next page {{lesson}} {{class}}</a>
{% endfor %}
{% endfor %}

и мой url:

path('nextpage/<int1:pk>/<int2:pk>', ListView.as_view(), name='next-page'),

Затем я хочу иметь возможность доступа к первичным ключам в моем представлении ниже:

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

Очевидно, что приведенный выше код не работает. Однако я хочу иметь возможность передавать два параметра в url, и обращаться к обоим в get_context_data моего представления. Спасибо, и пожалуйста, оставляйте любые вопросы, которые у вас могут возникнуть.

Вы допустили ошибку при определении пути, он должен быть <int:pk1> вместо <int1:pk>, поэтому:

path('nextpage/<int:pk1>/<int:pk2>/', ListView.as_view(), name='next-page'),

тогда вы действительно можете работать с:

<a href="{% url 'next-page' lesson.pk class.pk %}">Link to next page {{lesson}} {{class}}</a>

учитывая, что и lesson, и class существуют в контексте.

Вернуться на верх