2011-01-12 80 views
13

我在django中創建URL視圖時遇到問題。它給了我這個錯誤(費羅爾是一個空間物體):django'str'對象不可調用

TypeError at /spaces/ferrol/ 
'str' object is not callable 
Request Method: GET 
Request URL: http://localhost:8000/spaces/ferrol/ 
Django Version: 1.2.3 
Exception Type: TypeError 
Exception Value:  
'str' object is not callable 
Exception Location: /usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/core/handlers/base.py in get_response, line 100 

下面是代碼:

空間/ models.py

class Space(models.Model): 

""" 
Basic spaces model. 
""" 
name = models.CharField(_('Name'), max_length=100, unique=True) 
description = models.TextField(_('Description')) 
date = models.DateTimeField(auto_now_add=True) 

logo = models.ImageField(upload_to='spaces/logos', 
         verbose_name=_('Logotype')) 
banner = models.ImageField(upload_to='spaces/banners', 
          verbose_name=_('Banner')) 

主要urls.py

urlpatterns = patterns('', 

# Django administration 
(r'^admin/', include(admin.site.urls)), 

(r'^spaces/', include('apps.spaces.urls')), 

(r'^static/(?P<path>.*)$', 'django.views.static.serve', 
    {'document_root': 'static'}), 

) 

if 'e_cidadania.apps.rosetta' in settings.INSTALLED_APPS: 
urlpatterns += patterns('', 
    url(r'^rosetta/', include('apps.rosetta.urls')), 
) 

spaces/urls.py

urlpatterns = patterns('', 
    # Spaces 
    (r'^(?P<space_name>[-\w\./\s]+)/', 'view_space_index'), 
) 

空間/ views.py

def view_space_index(request, space_name): 

""" 
Show the index page for the requested space. 
""" 
place = get_object_or_404(Space, name=space_name) 

return object_detail(request, 
        queryset = Space.objects.all(), 
        object_id = place.id, 
        template_name = 'spaces/index.html', 
        template_object_name = 'get_place') 
+0

你的主urls.py的外觀如何?問題可能在那裏。 – 2011-01-12 11:07:03

回答

30

在你空間/文件的urls.py你必須提供完整的路徑,查看方法:

urlpatterns = patterns('', 
    # Spaces 
    (r'^(?P<space_name>[-\w\./\s]+)/', 'spaces.views.view_space_index'), 
) 

或者這樣:

urlpatterns = patterns('spaces.views', 
    # Spaces 
    (r'^(?P<space_name>[-\w\./\s]+)/', 'view_space_index'), 
) 
+1

現在正在工作。在調用函數之前,我忘了放置模式(apps.spaces.views),對我感到羞恥! – 2011-01-12 11:15:25