2013-08-01 65 views
0

作爲我一直希望在我的Uni課程中表現良好的一部分,我正在使用Django在Python(2.7)中做一些web-dev。我遵循Django的教程,現在我正在學習本教程。但是,當我添加urls.py部分來給我一些查看模型時,我收到了一些莫名其妙的錯誤。該項目被稱爲「實踐」,該應用程序被稱爲「訂單」。在「訂單」是模型(所有驗證)Django error(CRUD)urls.py

(的相關部分)urls.py是:

'django.views.generic.list_details', 
url(r'^orders/$', 'object_list', {'queryset': 'orders.Product.objects.all()'}), 
url(r'^orders(?P<slug>[-\W]+)/$', 'object_detail', {'queryset': 'orders.Product.objects.all()'}) 

我仔細檢查過ROOT_URLCONF正確設置這樣的錯誤在什麼地方作爲用途,在'django.views.generic.list_details'之內。

的錯誤信息是: AttributeError: 'str' object has no attribute resolve

一個很好的谷歌似乎並沒有產生任何合理,一隻手的任何機會,請你們?

謝謝!

+0

對不起,這是一個錯字,我的問題不是代碼的實際問題! – BrownE

+0

不知道它是否是另一個錯字或您的問題,但是放棄'orders.Product.object.all()'的單引號。 – knbk

+0

是的,我試過,沒有引號。有些網站建議我使用它,它仍然不工作(相同的錯誤信息)。 – BrownE

回答

0

你忘了「模式」?

urlpatterns = patterns('', 
    (r'^$', ...), 
    # ... 

而且我注意到一個斜線丟失:

url(r'^orders(?P<slug>[-\W]+)/$', 'object_detail', {'queryset': 'orders.Product.objects.all()'}) 
url(r'^orders/(?P<slug>[-\W]+)/$', 'object_detail', {'queryset': 'orders.Product.objects.all()'}) 
0

AttributeError建議,我認爲該字符串'django.views.generic.list_details'被視爲一個URL來解決。但是,您已經省略了太多的urls.py以說明問題。

確保前綴字符串是的第一個參數django.conf.urls.patterns。如果你想打破你的網址,並使用不同的前綴字符串,調用作爲documentation描述patterns多次:

urlpatterns = patterns('myapp.views', 
    url(r'^$', 'app_index'), 
    url(r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/$','month_display'), 
) 

urlpatterns += patterns('weblog.views', 
    url(r'^tag/(?P<tag>\w+)/$', 'tag'), 
) 
0

你報價在參數的值中的每個圖案辭典,所以它被視爲一個字符串。它應該是:

url(r'^orders/$', 'object_list', {'queryset': orders.Product.objects.all()}) 

不是說你需要導入orders - 除了我懷疑,將工作,因爲Product將在內部訂單的模型文件中定義。僅導入產品並直接引用它會更容易。