项目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中,第二个 url 是http://127.0.0.1:8000/expert-elektronikfachhandel
这将我带到商店详细信息页面
我正在使用以下函数调用第一个 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")
现在的问题是当我调用第二个 url 然后它调用第一个 url 时会引发错误(两者都在同一页面中)。为什么会发生这种情况,我无法找出。有什么我做错了。
好的,我想我找到了问题所在。但我不知道如何处理这个。
第一个和第二个 url 都是用 get 请求和从同一页面(这是从主页)调用的,但是第一个 url 是从表单提交调用的(它必须是一个 get 请求),当我们显式更改时调用第二个 url网址。
因此,当我提交表单时,它调用第一个 url,因为它是一个获取请求,它也调用了第二个 url。我认同?我不确定我的想法是否正确。