2009-09-07 31 views
3

我試圖做一個預覽功能。我正在閱讀這個博客,Django Admin Preview,但現在我有以下錯誤,我不知道它是什麼意思。Django預覽,TypeError:'str'對象不可調用

Traceback (most recent call last): 

    File "/home/user/webapps/django/lib/python2.5/django/core/handlers/base.py", line 92, in get_response 
     response = callback(request, *callback_args, **callback_kwargs) 

    TypeError: 'str' object is not callable 

我迷路了..

編輯:

謝謝你們/加侖,這是我view.py和url.py:

from diligencia.diligencias.views import preview 

    url(r'^admin/diligencias/diligencia/(?P<object_id>\d+)/preview/$','preview'), 
    (r'^admin/(.*)', admin.site.root), 

    from diligencia.diligencias.models import Diligencia 

    @staff_member_required 
    def preview(request, object_id): 
     return object_detail(request, object_id=object_id,queryset=Diligencia.objects.all(), template_object_name = 'diligencia_detail.html',) 
+0

更多關於此信息會對您有所幫助。 哪個是你的urls.py和views內容?你能想到可能導致異常的相關事件嗎? – Santi 2009-09-07 04:52:46

回答

8

的URL配置中的url功能的簽名是這樣的:

def url(regex, view, kwargs=None, name=None, prefix='') 

只使用位置參數,但只傳遞正則表達式,視圖和名稱。所以Python認爲你的第三個參數是kwargs字典,而不是名稱。

相反,這樣做:

url(r'^admin/diligencias/diligencia/(?P<object_id>\d+)/preview/$', name='preview'), 

將名字傳下去的kwarg這樣Python識別正確。

+0

丹尼爾謝謝,隨着一個垃圾更改正在工作: url(r'^ admin/diligencias/diligencia /(?P \ d +)/ preview/$',preview,name ='preview'), – Asinox 2009-09-08 16:02:36

2

我懷疑你的看法不是一個功能。確保你的urls.py中的參數是一個帶有一個參數的函數。像:

import default 

url(r'^s(?:ite)?/search$', default.search, name="search"), 

然後你有default.py

def search(request) : 
    # do stuff