Ответ 1
def calculate(request, b=3):
У меня есть одна функция, подобная
def calculate(request , b)
Я хочу, чтобы эта функция работала, даже если b не переходит к ней
def calculate(request, b=3):
Вам также может потребоваться обновить отправку URL для обработки запроса с помощью необязательного параметра или без него.
url(r'^calculate/?(?P<b>\d+)?/?$', 'calculate', name='calculate'),
url(r'^calculate/$', 'calculate', name='calculate'),
Если вы передаете b через URL-адрес, он попадает в первое определение URL-адреса. Если вы не включите опциональный параметр, он попадает во второе определение, но переходит в тот же вид и использует предоставленное по умолчанию значение.
Передача значения по умолчанию методу делает параметр необязательным.
В вашем случае вы можете сделать:
def calculate(request, b=None)
pass
Затем в вашем шаблоне вы можете использовать условие для другого поведения:
{% if b %}
Case A
{% else %}
Case B
{% endif %}
def calculate(request, b=None)