django视图未重定向
我有两个功能django视图未重定向,django,django-models,django-forms,django-views,django-templates,Django,Django Models,Django Forms,Django Views,Django Templates,我有两个功能product\u page\u view和buy\u now\u view 问题是,在成功发布订单后buy_now_视图正在返回到product_page_视图而不重定向,如果我这样做: def product_page_view(request, prod_slug, color=None, size=None): ... ... order_form = Buy_now_form() if request.method == "POST
product\u page\u view
和buy\u now\u view
问题是,在成功发布订单后
buy_now_视图
正在返回到product_page_视图
而不重定向,如果我这样做:
def product_page_view(request, prod_slug, color=None, size=None):
...
...
order_form = Buy_now_form()
if request.method == "POST":
order_form = Buy_now_form(request.POST)
if order_form.is_valid():
buy_now_view(request, prod_slug, color, size)
...
...
def buy_now_view(request, prod_slug, color, size):
...
...
return redirect(reverse("product-shipping", args=(order_id,)))
def shipping_view(request, order_id):
...
如果我这样做:
def buy_now_view(request, prod_slug, color, size):
...
...
return order_id
def product_page_view(request, prod_slug, color=None, size=None):
...
...
order_form = Buy_now_form()
if request.method == "POST":
order_form = Buy_now_form(request.POST)
if order_form.is_valid():
order_id = buy_now_view(request, prod_slug, color, size)
return redirect(reverse("product-shipping", args=(order_id,)))
...
...
def shipping_view(request, order_id):
...
它给了我不想要的结果
我的网址是:
# INDIVIDUAL PRODUCT VIEW PAGE COLOR & SIZE
path('products/<slug:prod_slug>/<str:color>/<str:size>/', product_page_view, name="product-page-view-color-size"),
# INDIVIDUAL PRODUCT VIEW PAGE SIZE
path('products/<slug:prod_slug>/<str:size>/', product_page_view, name="product-page-view-size"),
# INDIVIDUAL PRODUCT VIEW PAGE COLOR
path('products/<slug:prod_slug>/<str:color>/', product_page_view, name="product-page-view-color"),
# INDIVIDUAL PRODUCT VIEW PAGE
path('products/<slug:prod_slug>/', product_page_view, name="product-page-view"),
# SHIPPING VIEW
path('products/<int:order_id>/shipping/', shipping_view, name="product-shipping"),
这里到底发生了什么?实际上您忘记了从产品页面视图返回重定向请求。
buy\u now\u视图
已将重定向请求返回到product\u页面视图
。现在要重定向,product\u page\u视图
也必须返回该值
def product_page_view(request, prod_slug, color=None, size=None):
...
...
order_form = Buy_now_form()
if request.method == "POST":
order_form = Buy_now_form(request.POST)
if order_form.is_valid():
return buy_now_view(request, prod_slug, color, size)
实际上,您忘记了从产品页面视图返回重定向请求。
buy\u now\u视图
已将重定向请求返回到product\u页面视图
。现在要重定向,product\u page\u视图
也必须返回该值
def product_page_view(request, prod_slug, color=None, size=None):
...
...
order_form = Buy_now_form()
if request.method == "POST":
order_form = Buy_now_form(request.POST)
if order_form.is_valid():
return buy_now_view(request, prod_slug, color, size)
也可以添加URL.py。并解释你的页面在操作后重定向到哪里。谢谢你的时间@Pax。我添加了URL,
product\u page\u视图
将被重定向到shipping\u视图
。我在上面提到过两种情况,它们都有不同的重定向问题。您是否在URL.py中编写了app\u name
变量?我实际上不知道如何做。请分享一些细节好吗?谢谢。实际上这是在django的一个会议。如果您没有使用app\u name
,那么这可能不是您问题的解决方案。假设您有两个应用程序,并且都将路径设置为name=“home”
。如果您尝试重定向到home
URLConf,则会弄不清楚该转到哪个家。因此,如果我们定义了app\u name=“App1”
。您可以告诉django要重定向哪个页面,方法是说redirect(“App1:home”)
。如果您已定义应用程序名称。有必要保留app_name:name以重定向。您也可以添加URL.py。并解释你的页面在操作后重定向到哪里。谢谢你的时间@Pax。我添加了URL,product\u page\u视图
将被重定向到shipping\u视图
。我在上面提到过两种情况,它们都有不同的重定向问题。您是否在URL.py中编写了app\u name
变量?我实际上不知道如何做。请分享一些细节好吗?谢谢。实际上这是在django的一个会议。如果您没有使用app\u name
,那么这可能不是您问题的解决方案。假设您有两个应用程序,并且都将路径设置为name=“home”
。如果您尝试重定向到home
URLConf,则会弄不清楚该转到哪个家。因此,如果我们定义了app\u name=“App1”
。您可以告诉django要重定向哪个页面,方法是说redirect(“App1:home”)
。如果您已定义应用程序名称。有必要保留app\u name:name以重定向。我尝试了返回buy\u now\u视图(请求、产品编号、颜色、大小)
,但没有成功。我尝试了返回buy\u now\u视图(请求、产品编号、颜色、大小)
,但没有成功。