2011-06-27 14 views

Respuesta

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

Pasando un valor por defecto para el método hace parámetro opcional.

En su caso, usted puede hacer:

def calculate(request, b=None) 
    pass 

Luego, en su plantilla que puede utilizar condición para un comportamiento diferente:

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

También es posible que tenga que actualizar el despacho URL para manejar la petición con, o sin, el parámetro opcional.

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

Si pasa b por medio de la URL, se llega a la primera definición de URL. Si no incluye el parámetro opcional, accede a la segunda definición pero va a la misma vista y usa el valor predeterminado que proporcionó.

+11

Creo que esta es la parte más importante de la respuesta. – SummerBreeze

+1

¿Puedes usar ambas definiciones en 'reverse ('calculate', ...)'? – naktinis

+1

Sí, puede proporcionar args y kwargs como atributos pasados ​​al método inverso. – vjimw

Cuestiones relacionadas