0

项目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。我认同?我不确定我的想法是否正确。

4

0 回答 0