django'str'对象不可调用 [英] django 'str' object is not callable
本文介绍了django'str'对象不可调用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在django中创建URL视图时遇到问题。它给我这个错误(ferrol是一个空间对象):
Type / at / spaces / ferrol /
'str '对象不可调用
请求方法:GET
请求URL:http:// localhost:8000 / spaces / ferrol /
Django版本:1.2.3
异常类型:TypeError
异常值:
'str'对象不可调用
异常位置:/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6。 egg / django / core / handlers / base.py在get_response中,第100行
这是代码:
空格/ models.py
class Space(models.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'))
ba nner = models.ImageField(upload_to ='spaces / banners',
verbose_name = _('Banner'))
主要urls.py
urlpatterns = patterns('',
# Django管理
(r'^ admin /',include(admin.site.urls)),
(r'^ spaces /',include('apps.spaces.urls') )
(r'^ static /(?P< path>。*)$','django.views.static.serve',
{'document_root' }),
)
如果设置中为'e_cidadania.apps.rosetta'.INSTALLED_APPS:
urlpatterns + = patterns('',
url (r'^ rosetta /',include('apps.rosetta.urls')),
)
spaces / urls.py
urlpatterns = patterns('',
/ pre>
#Spaces
(r'^(?P< space_name> [ - \w\。/ \s] +)/','view_space_index'),
)
空格/ views.py
de f view_space_index(request,space_name):
显示所请求空间的索引页。
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')
解决方案在您的空格/ urls.py文件中,您必须提供完整的查看方式路径:
urlpatterns = patterns('',
#Spaces
(r'^(?P< space_name> [ - \w\。 \\'] /','spaces.views.view_space_index'),
)
或者像这样:
urlpatterns = patterns('spaces.views',
pre>
#Spaces
r'^(?P< space_name> [ - \w\。/ \s] +)/','view_space_index'),
)
I have a problem creating an URL view in django. It gives me this error (ferrol is a Space object):
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
Here is the code:
spaces/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'))
Main 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'), )
spaces/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')
解决方案In your spaces/urls.py file you have to provide full path to view method:
urlpatterns = patterns('', # Spaces (r'^(?P<space_name>[-\w\./\s]+)/', 'spaces.views.view_space_index'), )
Or like this:
urlpatterns = patterns('spaces.views', # Spaces (r'^(?P<space_name>[-\w\./\s]+)/', 'view_space_index'), )
这篇关于django'str'对象不可调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文