Skip to main content
 首页 » 编程设计

python之Django 重定向传递一个(或多个)对象作为参数

2025年05月04日31落叶无声

上下文:我有 3 个应用 A、B、C

每个都有views.py和urls.py文件

View .py

A 有 do_Ax(request, xpto), do_Ay(request, xpto), do_Az(request, xpto)

B 有 do_Bx(request), do_By(request), do_Bz(request)

C 有 do_Cx(request, xpto), do_Cy(request, xpto), do_Cz(request, xpto)

网址.py 一个

urlpatterns = patterns('', 
                       url(r'^A_x/$', views.do_Ax, name='A_x'), 
                       url(r'^A_y/$', views.do_Ay, name='A_y'), 
                       url(r'^A_z/$', views.do_Az, name='A_z'), 

B

urlpatterns = patterns('', 
                       url(r'^B_x/$', views.do_Bx, name='B_x'), 
                       url(r'^B_y/$', views.do_By, name='B_y'), 
                       url(r'^B_z/$', views.do_Bz, name='B_z'), 

C

urlpatterns = patterns('', 
                       url(r'^C_x/$', views.do_Cx, name='C_x'), 
                       url(r'^C_y/$', views.do_Cy, name='C_y'), 
                       url(r'^C_z/$', views.do_Cz, name='C_z'), 

我的全局应用程序的入口点是通过 B。在那里,我检查了一些东西并想使用新参数REDIRECT 到 A 或 C View 的正确方法... 有什么办法可以做到这一点吗?

我已经尝试了 n00b 方法,但我得到了一个 SuspiciousOperation 异常(“不安全重定向到 URL 方案 ...”)

重要提示: 我还有一个名为 top 的“父”应用程序,它具有以下 urls.py:

urlpatterns = patterns('', 
    url(r'^A/', include('apps.top.A.urls', namespace="A")), 
    url(r'^B/', include('apps.top.B.urls', namespace="B")), 
    url(r'^C/', include('apps.top.C.urls', namespace="C")), 
) 

请注意>>>>> XPTO 是一个对象!!!!不是文本值! <<<<<<<<

请您参考如下方法:

from django.core.urlresolvers import reverse 
from django import shortcuts 
 
def do_Bx(request): 
    # do some tests here and whatever 
    xpto = whatever 
    url = reverse("A_x", args=[xpto]) 
    return shortcuts.redirect(url)