如何在Django视图中传递可选参数

时间:2011-06-27 12:38:19

标签: django view arguments

我在视图中有一个功能,如

def  calculate(request , b)

我希望即使b没有传递给它,这个功能也应该有效

4 个答案:

答案 0 :(得分:59)

您可能还需要更新网址调度,以便使用或不使用可选参数来处理请求。

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

如果您通过URL传递b,则会点击第一个网址定义。如果您不包含可选参数,它将触及第二个定义,但会转到相同的视图并使用您提供的默认值。

答案 1 :(得分:23)

Default arguments

def calculate(request, b=3):

答案 2 :(得分:7)

将默认值传递给方法会使参数成为可选参数。

在您的情况下,您可以:

def calculate(request, b=None)
    pass

然后在您的模板中,您可以将条件用于不同的行为:

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

答案 3 :(得分:0)

def calculate(request, b=None)