Django - два разных URL вызывают один и тот же метод, что приводит к ошибке

проект urls.py

urlpatterns = [
    path('', include('products.urls')),
]

приложение urls.py

    path('p/a/s/',views.get_product_store_data,name='get_product_store_data'),

    # store by url
    path('<str:store_url>/',views.store_from_url, name="store_from_url"),

    path('p/',views.show_product_list, name="show_product_list"),

     # Random store  detail
    path('s/d/<store_id>/',views.random_store_detail, name="random_store_detail"),

    # Random Service List
    path('sr/',views.get_random_service_list, name="get_random_service_list"),

в приложении urls.py 2-й url - http://127.0.0.1:8000/expert-elektronikfachhandel

которые ведут меня на страницу подробностей магазина

и третий url - http://127.0.0.1:8000/p, который ведет меня на страницу товара

Я вызываю 1-й url с помощью следующей функции

def get_product_store_data(request):
    """
        get all product list and store list for search text
    """
    try:
        if request.method == 'GET':

            if category == 'all':
                data = logic.get_product_store_data(request)
                return render(request, 'list_product_and_store.html', data)
            elif category == 'stores':
                return HttpResponseRedirect(f"/s/?s={request.session['search_text']}")
            elif category == 'services':
                return HttpResponseRedirect(f"/sr/?s={request.session['search_text']}")
            elif category == 'products':
                return HttpResponseRedirect(f"/p/?s={request.session['search_text']}&p=0")
            elif category == 'events':
                return redirect("all_events")

            elif category == 'restaurants':
                return redirect("restaurant")

            elif category == 'public_service':
                return redirect("public_service", -1)

    except Exception as e:
        logger.error(f'{repr(e)} -->{request.user.username}')
        return redirect("error404")

я использую return HttpResponseRedirect(f"/p/?s={request.session['search_text']}&p=0") для перенаправления на p/?s={request.session['search_text']}&p=0 как GET запрос, и передаю значение поиска и номер страницы как параметр, используя приведенный выше код

Теперь проблема в том, что когда я вызываю 2-ой url, то при вызове 1-го url выдает ошибку (оба находятся на одной странице). Почему это происходит, я не могу выяснить. Есть ли что-то, что я делаю неправильно.

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