對於模板重用:您應該爲通用佈局創建基礎模板,併爲各個頁面使用詳細的模板。這已在Django documentation中詳細介紹。
我傾向於對那些通用零件做的(比方說,突出的部位使用是對當前部分菜單),是創建自己的render_to_response
功能,類似於如下:
from django.shortcuts import render_to_response as django_render_to_response
def render_to_response(template, params, context_instance):
return django_render_to_response(template,
AppendStandardParams(request, params),
context_instance)
ApplyStandardParams
該方法然後配置基於電流路徑上的菜單:在這個例子中
def AppendStandardParams(request, params):
if request.META['PATH_INFO'].startswith('/customer'):
params['category'] = 'customer'
params['title'] = 'Customer overview'
# and so on for all different parts
這些category
和title
標籤被用來突出顯示菜單的一些值,配置標題等等。例如:
<!-- Customer menu entry: change class if this is the current category. -->
<li{% if category == "customer" %} class="selected"{% endif %}>Customers</li>
最後,使用它在一個視圖,而不是正常的render_to_response
進口,我就是這樣做from lib.views import *
,這使得在視圖中可用我的定製版本。這樣,視圖中所有代碼的語法都保持不變,但我不必在每次創建新視圖或應用程序時自定義菜單。
來源
2011-10-26 06:43:24
jro
應該做的把戲:)坦克你 –