当前位置: 首页 > 面试题库 >

Django'str'对象不可调用

卫乐童
2023-03-14
问题内容

我在Django中创建URL视图时遇到问题。它给了我这个错误(ferrol是一个Space对象):

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

这是代码:

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')

问题答案:

在你的spaces / 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'),
)


 类似资料:
  • 问题内容: 当我尝试在任何上下文中导入时,都会引发此错误: 知道我该如何解决吗?我只是通过打开Terminal,运行然后输入即可生成此错误。 问题答案: 昨天我遇到了同样的问题,没有安装Hashlib,尝试使用pip安装它会给出该错误。我通过使用easy_install进行安装来修复它。 另外我还必须在Windows上为Python 2.7安装Scipy和Microsoft Visual C ++

  • 问题内容: 我有以下代码 当我运行它时,我得到了: 这是为什么?怎么修? 问题答案: 将变量称为。它掩盖了内置功能。

  • 我可以从一个简单的脚本成功加载TextBlob模块,但不能从Flask应用程序加载。我将向您展示代码和错误。 加载一个简单的脚本工作: 从烧瓶应用程序加载时抛出错误: 错误: 我使用的是textblob版本0.11。0与pip一起安装。

  • 问题内容: 为什么会出现此错误?我很困惑。 你需要知道什么才能回答我的问题? 问题答案: 是一个包含的模块。 你需要执行以下操作: 这就是错误消息的含义: 它表示为,因为你的代码正在调用模块对象。模块对象是导入模块时得到的东西的类型。你试图做的是在模块对象中调用恰好与包含它的模块同名的类对象。 这是一种从逻辑上分解这种错误的方法: “ 告诉我我的代码试图调用无法调用的内容。我的代码试图调用什么?”

  • 问题内容: 码: 第一次工作,然后第二次出现错误: 有人知道为什么是这样吗? 我已经尝试过了,但出现错误: 问题答案: 这就是问题: 你正在重新定义什么意思。是字符串类型的内置Python名称,你不想更改它。 为本地变量使用其他名称,然后删除该语句。

  • 问题内容: 给定以下整数和计算 结果是: 如何将输出舍入为整数? 问题答案: 给定以下整数和计算 结果是: 如何将输出舍入为整数?