作为我继续想要在我的Uni课程上取得好成绩的一部分,我正在使用Django在Python(2.7)中做一些web-dev。我已经关注了Django的教程,现在我正在学习本教程。但是,当我添加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
一个优秀的Google似乎没有产生任何合理的结果,所以任何一个人都有机会取悦吗?
谢谢!
答案 0 :(得分: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()'})
答案 1 :(得分:0)
AttributeError
向我建议字符串'django.views.generic.list_details'
被视为要解析的网址。但是,您已经省略了过多的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'),
)
答案 2 :(得分:0)
您在每个模式中引用了参数字典中的值,因此将其视为字符串。它应该是:
url(r'^orders/$', 'object_list', {'queryset': orders.Product.objects.all()})
并非您需要导入orders
- 除非我怀疑这会有效,因为Product
将在订单内的模型文件中定义。只需导入Product并直接引用它就会更容易。