Использование *args в параметрах url в django

У меня есть веб-страница на сайте, которая показывает список тем наборов Lego. Каждая тема может иметь подтемы, и эти подтемы также могут иметь подтемы.

На изображении ниже каждый уровень отступа представляет, какие темы являются подтемами других тем.

enter image description here

Например, на моей странице пользователь может пройти по следующему пути:

По моему мнению, я бы использовал *theme для обработки любого количества подтем

url path

http://127.0.0.1:8000/theme/train/9V/

views.py

def theme(request, *theme):
    #theme = ('train', '9V')
    theme_path = "".join([theme + "/" for theme in themes])
    #theme = 'train/9V/'
    theme_items = db.get_theme_items(theme_path)
    sub_themes = db.get_sub_themes(theme_path)
    
    context = {
        "parent_theme":theme[0],
        "theme_items":theme_items,
        "sub_themes":sub_themes,
    }

    return render(request, "App/theme.html", context=context)

urls.py

urlpatterns = [
    ...
    path('theme/<str:theme_path>', views.theme, name="theme"),
    ...
]

theme.html

sub_theme.0 = название подтемы, например, '9V' sub_theme.1 = url изображения header = родительская тема подтемы, например, 'поезд'

{% for sub_theme in sub_themes %}
    <div class="theme-container">
        <p><a href="{% url 'theme' parent_theme %}/{{sub_theme.0}}">{{sub_theme.0}}</a></p>
        <img src="{{sub_theme.1}}" alt="{{sub_theme.0}}_url">
    </div>
{% endfor %}

Как я могу передать несколько параметров в url, которые могут быть обработаны моим представлением?

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