2

コンテキスト:3つのアプリA、B、Cがあります

それぞれにviews.pyファイルとurls.pyファイルがあります

views.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)があります

urls.py A

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を経由します。そこで、いくつかのことを確認し、新しい引数を使用してAまたはCビューの正しいメソッドにリダイレクトしたいと思います...これを実現する方法はありますか?

n00bアプローチを試しましたが、SuspiciousOperation例外が発生します(「スキームを使用したURLへの安全でないリダイレクト...」)

重要:私は、次のurls.pyを持つtopという名前の「親」アプリでもあります。

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はオブジェクトです!!!! テキストの値ではありません!<<<<<<<<

4

2 に答える 2

0

親アプリのurls.pyで名前空間が定義されているため、reverse()呼び出しで名前空間を指定する必要があると思います。

ここに見られるように:

url = reverse('A:A_x', args=[xpto])
于 2013-02-27T16:20:36.283 に答える
0
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)
于 2013-02-27T12:42:20.097 に答える