2010-11-07 73 views
8

在一個應用程序的urls.py我:Django應用程序的URL不工作

urlpatterns = patterns('app.views', 
    url(r'^products/$', products, name="products"), 
    url(r'^$', index, name="index"), 
) 

在基地項目urls.py我:

urlpatterns = patterns('', 
    (r'^$', include('app.urls')), 
    (r'^admin/', include(admin.site.urls)), 
) 

爲什麼http://127.0.0.1:8000/ - 正常工作與app.views。索引方法 而http://127.0.0.1:8000/products/ - 返回404錯誤,並未在url路由中定義?

花了一些時間在它已經並不能找到解決方案,也許有一些簡單的,我想念......

+0

你是否在'app.urls'中導入了'app.views'? – 2010-11-07 08:00:54

+0

嘗試導入,沒有 – Zelid 2010-11-07 08:05:15

回答

11

你的基本URL應該是:

urlpatterns = patterns('', 
    (r'^', include('app.urls')), 
    (r'^admin/', include(admin.site.urls)), 
) 
+1

它沒有幫助「產品」路線工作,但打破了「索引」路線 – Zelid 2010-11-07 08:09:17

+0

如果刪除尾部斜槓,並將模式移動到管理員下面,您將能夠訪問索引和產品視圖。 – ayaz 2010-11-07 08:10:48

+4

試過(r'^',include('app.urls')), - 對所有情況適用 – Zelid 2010-11-07 08:14:58

4
urlpatterns = patterns('', 
    (r'^', include('app.urls')), 
    (r'^admin/', include(admin.site.urls)), 
) 

工作正常。

+0

您應該在您的apps.urls之前移動admin url的行。 – 2010-11-08 02:11:34

+0

我也認爲我應該,由於某種原因管理網址仍然適用於這種配置。 – Zelid 2010-11-08 15:21:04

5

'$'僅用於網址。如果你看看文檔,它會告訴你在使用include()時不要使用'$'。