2012-05-25 47 views
0

向我的項目中的所有模板添加方法類功能的最佳方式是什麼?如何添加一個方法到所有的Django模板?

的方法,我需要的是以下幾點:

def has_access(user, code): 
    return user has access to code 

在它woule像這樣使用的模板:

{% if has_access(request.user, 'add-project') %} 
    html code here 
{% endif %} 

自定義過濾器將無法工作,因爲我不是「過濾」任何東西。另外,從我所看到的情況來看,自定義上下文處理器不接受額外的參數。

不知道如何去做這個在Django。

+0

需要更多信息。特別是,你想要達到什麼目標? 「有權訪問代碼」是什麼意思?用戶可以在瀏覽器中訪問該視圖? –

+1

這裏的代碼是什麼? –

+0

根據「代碼」的作用,這可能是[自定義中間件](https://docs.djangoproject.com/en/dev/topics/http/middleware/?from = olddocs#writing-yourown - 中間件)可以解決。 –

回答

2

自定義過濾器實際上會工作:

{{ user|has_access:code }} 

一個自定義模板標籤將工作:

{% has_access user code %} 

中間件可以工作...但它很難說什麼是最好的方法問題沒有更多的信息。

+0

可以在if語句中使用其中任何一種嗎? – TheOne

+0

@Ramin,可以使用過濾器。 {%if user | has_access:code%} –

相關問題