'str'对象在Django url模式中不可调用

时间:2011-12-25 09:53:33

标签: django url

在我的urls.py文件中,我有

urlpatterns = patterns('',
                       (r'^$',home_page),
                       #(r'^'+main_cagetory_url_string+'$','home_page'),
                       (r'^(?:cam_sanh|buoi_da_xanh|cam_da_xanh)$','home_page'),
                       (r'^admin/', include(admin.site.urls)),)

我想使用该模式访问cam_sanh,buoi_da_xanh,cam_da_xanh页面。 但我收到错误:

'str' object is not callable

如何修复此错误?

2 个答案:

答案 0 :(得分:4)

Django将尝试使用您提供的字符串查找视图,但是,您需要指定完整视图路径,即'my_project.view_name'

或者,您可以像Filip建议的那样进行操作,并将视图名称作为回调,但是您需要将视图导入到urls.py文件中。

答案 1 :(得分:2)

对于这一行,特别是(r'^(?:cam_sanh|buoi_da_xanh|cam_da_xanh)$','home_page'),,第二个元组元素应该是回调函数,而不是字符串。

这应该解决它:

urlpatterns = patterns('',
    (r'^$',home_page),
    (r'^(?:cam_sanh|buoi_da_xanh|cam_da_xanh)$',home_page),
    (r'^admin/', include(admin.site.urls)),
)