我有這樣的URL配置和做工精細而以斜線:追加斜槓不工作
urlpatterns = patterns('', url(r'^allvideo/$','my.views.allvideo'))
即使
它給我的屬性錯誤「訪問‘STR’對象有沒有屬性「解決」「,當請求是與缺少的尾部斜槓
任何想法??
我有這樣的URL配置和做工精細而以斜線:追加斜槓不工作
urlpatterns = patterns('', url(r'^allvideo/$','my.views.allvideo'))
即使
它給我的屬性錯誤「訪問‘STR’對象有沒有屬性「解決」「,當請求是與缺少的尾部斜槓
任何想法??
不知道什麼是根本原因,但這些可以幫助你去解決它或它縮小:
(1)您是否嘗試過或者使用實際的視圖函數作爲參數(而不是一串):
from my.views import allvideo
urlpatterns = patterns('', url(r'^allvideo/$',allvideo))
(2)或使用URL功能跳過:
urlpatterns = patterns('', (r'^allvideo/$','my.views.allvideo'))
thn didn work :( – user1170364 2012-02-28 06:56:03
APPEND_SLASH不是無條件地發生 - 它只是生效如果在嘗試所有現有的URL後模式(和相關的視圖,如果匹配的話),Django即將返回一個404.
如果是這樣,並且原始請求在末尾沒有斜線,那麼Django會檢查是否有任何網址格式會與尾部的斜線匹配。如果是這樣,它會發出HTTP重定向。
如果你的任何URL模式匹配原始請求(沒有斜槓),那麼Django會先嚐試一個。如果這引發了一個例外,那麼你會看到它(我懷疑這是發生了什麼)。 Django永遠不會發出重定向。
它的工作正常與尾部斜槓,因爲我在我的問題中提到... prb只發生尾部斜線丟失時 – user1170364 2012-02-28 06:55:23
也許隨着尾部斜槓刪除,它匹配* *不同* url模式你在期待 – 2012-02-28 14:38:10
這一定會解決您的問題。你可以提供帶有或不帶尾隨斜線的URL,它會給你相同的結果。
在網址的文件,
urlpatterns = patterns('', url(r'^allvideo/?$','my.views.allvideo'))
最後的斜線後面添加問號。 當你輸入一個url時,它將首先檢查結尾的斜線,或者它將匹配它而沒有結尾的斜線,並且在任何情況下都會給你相同的響應。希望這對你有一些幫助。快樂編碼。
即使看起來令人難以置信,我也遇到同樣的問題,只需重新啓動開發服務器即可解決問題。只需要記住:
python manage.py runserver
如果您添加了一些自己的中間件,那麼中間件的順序很重要。我有一個類似的情況,斜線在之前工作,並添加中間件項目打破了它。切換訂單後,所有事情再次開始工作。
對我來說,這是通過確保CommonMiddleware低於LocaleMiddleware來解決的。 – 2015-05-21 14:48:22
你有沒有['django.middleware.common.CommonMiddleware'](https://docs.djangoproject.com/en/dev/ref/settings/#append-slash),安裝在你的'MIDDLEWARE_CLASSES'中? – 2012-02-27 10:27:12
是的,commonMiddleware是 – user1170364 2012-02-27 10:28:41
你可以發佈回溯? – jpic 2012-02-27 11:57:32