2013-08-01 44 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将在内部订单的模型文件中定义。仅导入产品并直接引用它会更容易。