2011-06-27 25 views

回答

-1
def calculate(request, b=None) 
5

傳遞一個默認值的方法使得參數可選的。

在你的情況,你可以做:

def calculate(request, b=None) 
    pass 

然後在你的模板,你可以使用條件不同的行爲:

{% if b %} 
    Case A 
{% else %} 
    Case B 
{% endif %} 
47

您可能還需要更新您的網址調度處理請求帶或不帶可選參數。

url(r'^calculate/?(?P<b>\d+)?/?$', 'calculate', name='calculate'), 
url(r'^calculate/$', 'calculate', name='calculate'), 

如果您通過URL傳遞b,它會擊中第一個URL定義。如果您沒有包含可選參數,它會觸及第二個定義,但會進入相同的視圖並使用您提供的默認值。

+11

我認爲這是答案中最重要的部分。 – SummerBreeze

+1

你可以在'reverse('calculate',...)'中使用這兩個定義嗎? – naktinis

+1

是的,你可以提供args和kwargs作爲屬性傳遞給reverse方法。 – vjimw