2011-11-07 54 views

回答

2

任何你不能只傳遞函數引用的理由?

def my_func(): 
    # ... 

urlpatterns = patterns('', 
    (r'^foo/$', direct_to_template, { 
     'template': 'foo.html', 
     'filter_func': my_func, 
    }), 
) 

編輯:鼠,那won't work with generic views

如果在字典中的值是可調用的,通用視圖將只呈現模板之前調用它。

你也許可以解決這個問題通過在字典堅持你的功能,雖然它是不是很漂亮:

def my_func(): 
    # ... 

urlpatterns = patterns('', 
    (r'^foo/$', direct_to_template, { 
     'template': 'foo.html', 
     'filter_funcs': { 'my_func': my_func }, 
    }), 
) 

我不得不說,幾乎我每次啓動試圖讓通用視圖做任何事稍微與衆不同,我傾向於浪費相當長的時間,然後才寫出滿足需要的四行自定義視圖。

+0

如果我嘗試extra_context = {'f':f2},它會返回錯誤,「f2()只需要1個參數(0給定)」,就好像它以爲我在那裏調用它一樣。 – Mark

+0

呃 - 即使你不使用它......哦,我明白了。請參閱編輯。 – nrabinowitz

+0

是的。 f2是一個功能。我設置了extra_context = {'f':f2},它返回錯誤信息,好像它以爲我試圖調用f2而不是引用它。你確定在你的例子中它不只是調用my_func,考慮到它不需要參數。 – Mark

相關問題