Django view для перенаправления на один и тот же url с разными параметрами?

У меня есть приложение django с представлениями (урлами), которые показывают разные списки для разных мест:

path('ItemList/<int:locationId>/', views.ItemList, name="ItemList"),
path('SomethingList/<int:locationId>/', views.SomethingList, name="SomethingList"),    

и затем в шаблоне у меня есть меню, когда я могу переключаться между локациями, т.е. находясь в -- ItemList/2/ я могу переключиться на локацию с другим Id или находясь в SomethingList/4/ я могу переключиться на локацию с другим Id

Для переключения местоположения у меня есть метод (который, очевидно, неверен):

def setLocation (request, newLocationId): 
    return redirect(request.META['HTTP_REFERER'], locationId = newLocationId)

но как я могу сделать это, чтобы получить текущий url, например: ItemList/2/ и перенаправить его на ItemList/4/ (т.е. на другой id?)

В запросе есть атрибут resolver_match, который вы можете использовать вместе с новым идентификатором местоположения, чтобы получить url для перенаправления:

def setLocation (request, newLocationId):
    url_name = request.resolver_match.url_name  # "ItemList" or "SomethingList" as per URL conf
    return redirect(reverse(url_name, kwargs={"locationId": newLocationId}))

ResolverMatch

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