【发布时间】:2011-09-23 11:47:43
【问题描述】:
我有一个功能,比如
def calculate(request , b)
我希望即使 b 没有传递给它,这个函数也应该工作
【问题讨论】:
我有一个功能,比如
def calculate(request , b)
我希望即使 b 没有传递给它,这个函数也应该工作
【问题讨论】:
您可能还需要更新您的 URL 调度以处理带有或不带有可选参数的请求。
url(r'^calculate/?(?P<b>\d+)?/?$', 'calculate', name='calculate'),
url(r'^calculate/$', 'calculate', name='calculate'),
如果您通过 URL 传递 b,它会命中第一个 URL 定义。如果您不包含可选参数,它会命中第二个定义,但会转到相同的视图并使用您提供的默认值。
【讨论】:
reverse('calculate', ...)中同时使用这两个定义吗?
url(r'^calculate/$', 'calculate', {'b': 3}, name='calculate'),
def calculate(request, b=3):
【讨论】:
将默认值传递给方法使参数成为可选参数。
在你的情况下,你可以:
def calculate(request, b=None)
pass
然后在您的模板中,您可以将条件用于不同的行为:
{% if b %}
Case A
{% else %}
Case B
{% endif %}
【讨论】:
def calculate(request, b=None)
【讨论】: