Zrozumienie django.shortcuts.redirect

Mam parę problemów ze zrozumieniem, jak to zrobićredirect albo raczejreverse naprawdę działa.

W głównym pliku urls.py mam:

from django.conf.urls import patterns, include, url
from django.views.generic.simple import redirect_to

urlpatterns = patterns('',
        url(r'^

i wmonitors.urls Mam:

from django.conf.urls import patterns, include, url 

urlpatterns = patterns('monitor.views',
        (r'^

Kiedy zadzwonisz/monitor Chcę go przekierować/monitor/abc więc zrobiłem:

def index(request):
    return redirect("abc")

def abc(render, id=None):
    return render_to_response("monitor/list.htmld", {})

Ale mamNoReverseMatch wyjątek. Ale kiedy robię:

def index(request):
    return redirect("abc/")

to nagle działa.

Nie mogę w pełni zrozumieć dlaczego. Dlaczego zrobiłreverse nieabc ale nie zabc/? I jak to zrobićreverse wiem, że przekierowanie powinno obejmowaćmonitor/ także? Co się stanie, jeśli w głównej nazwie urls.py zostanie wywołana inna aplikacjaxyz który również maabc widok?

, redirect_to, {'url': '/monitor/'}), url(r'^monitor/', include('monitor.urls')), )

i wmonitors.urls Mam:

from django.conf.urls import patterns, include, url 

urlpatterns = patterns('monitor.views',
        (r'^$', 'index'),
        (r'^abc/(?P<id>.*$)', 'abc'),
)   

Kiedy zadzwonisz/monitor Chcę go przekierować/monitor/abc więc zrobiłem:

def index(request):
    return redirect("abc")

def abc(render, id=None):
    return render_to_response("monitor/list.htmld", {})

Ale mamNoReverseMatch wyjątek. Ale kiedy robię:

def index(request):
    return redirect("abc/")

to nagle działa.

Nie mogę w pełni zrozumieć dlaczego. Dlaczego zrobiłreverse nieabc ale nie zabc/? I jak to zrobićreverse wiem, że przekierowanie powinno obejmowaćmonitor/ także? Co się stanie, jeśli w głównej nazwie urls.py zostanie wywołana inna aplikacjaxyz który również maabc widok?

, 'index'), (r'^abc/(?P<id>.*$)', 'abc'), )

Kiedy zadzwonisz/monitor Chcę go przekierować/monitor/abc więc zrobiłem:

def index(request):
    return redirect("abc")

def abc(render, id=None):
    return render_to_response("monitor/list.htmld", {})

Ale mamNoReverseMatch wyjątek. Ale kiedy robię:

def index(request):
    return redirect("abc/")

to nagle działa.

Nie mogę w pełni zrozumieć dlaczego. Dlaczego zrobiłreverse nieabc ale nie zabc/? I jak to zrobićreverse wiem, że przekierowanie powinno obejmowaćmonitor/ także? Co się stanie, jeśli w głównej nazwie urls.py zostanie wywołana inna aplikacjaxyz który również maabc widok?

, redirect_to, {'url': '/monitor/'}), url(r'^monitor/', include('monitor.urls')), )

i wmonitors.urls Mam:

from django.conf.urls import patterns, include, url 

urlpatterns = patterns('monitor.views',
        (r'^$', 'index'),
        (r'^abc/(?P<id>.*$)', 'abc'),
)   

Kiedy zadzwonisz/monitor Chcę go przekierować/monitor/abc więc zrobiłem:

def index(request):
    return redirect("abc")

def abc(render, id=None):
    return render_to_response("monitor/list.htmld", {})

Ale mamNoReverseMatch wyjątek. Ale kiedy robię:

def index(request):
    return redirect("abc/")

to nagle działa.

Nie mogę w pełni zrozumieć dlaczego. Dlaczego zrobiłreverse nieabc ale nie zabc/? I jak to zrobićreverse wiem, że przekierowanie powinno obejmowaćmonitor/ także? Co się stanie, jeśli w głównej nazwie urls.py zostanie wywołana inna aplikacjaxyz który również maabc widok?

questionAnswers(1)

yourAnswerToTheQuestion