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 выдает ошибку (оба находятся на одной странице). Почему это происходит, я не могу выяснить. Есть ли что-то, что я делаю неправильно.