Ben bu anladım sanıyordum tanınmayan url (sadece 404 şablon) için kullanıcıyı yönlendirme, ama sadece garip bir şey keşfetti. URL'ler olarakDjango,
Ben url tanınmadığı takdirde
url('^page_1/$', handle_page_1),
url('^page_2/$', handle_page_2),
url('^.*/$', handle_page_not_found),
handle_page_not_found()
.
bir işlev döndürülür
return HttpResponse("ok")
ardından "Tamam" döner ve her şey iyi çalışıyor gibi görünüyor edin. AMA, ben sadece handle_page_not_found()
da denir gördüm (Ben bir baskı beyanı ile test). Yine de "tamam" geri döndü, ancak ilk önce kodu handle_page_not_found()
'da çalıştırıyor.
Peki, nasıl tanınmayan URL'ler için çağrılan bir işlevi olabilir, ancak bu bir HttpResponse
nesnesi tarafından çağrılmıyor mu?
DÜZENLEME: cevap dayanarak, benim kod özel test durumlar hariç aslında iyi olduğunu gördük. HttpResponse bir ajax çağrısına (normalde kullandığım zaman) döndüğü sürece her şey iyidir.
Haklısınız! Bu bana bakmak ve ben bir ajax arama için HTTPResponse döndüğünüzde Sorunu yok olduğunu görüyoruz yapılmış /favicon.ico/ request.path olduğunu. Ve aslında şu anda baktığım test sayfası dışında bunu yaptığım tek zaman. – user984003
Kısa versiyon: her şey yolunda. Kodum özel test durumu dışında çalışır. – user984003
benim için bunun son URL'deki ifadeden kaynaklandığına inanıyorum. Herhangi bir dize için handle_page_not_found'u arayacak, yıldızı başka bir şeye değiştirecek. //docs.djangoproject: [Django URL memuru referans] de abda2005 Look (HTTPS @ – drabo2005