Return message from else

1

I'm doing a very simple example using Django.

In my view I have the following:

def index(request,idade):

    string = '''
        {% if idoso >= 65 %}
            Você já é idoso
        {% else %}
            Você não é idoso
        {% endif %}
    '''
    t = template.Template(string)
    c = template.Context({'idoso':idade})
    return HttpResponse(t.render(c))

But even if I pass any value it will always return the if message, ie if I pass 10 it will return: you are already old.

Does anyone know why this is occurring?

NOTE: I use Django 1.11.

    
asked by anonymous 29.05.2018 / 15:30

1 answer

0

You should probably be doing something like this:

 url(r'^algo/(?P<idade>\d+)/$', views.index)

When passing the value through a regex it might not be the desired type even if you use \d+ , for example.

To solve this problem, it is best to make sure it is in the desired type, so do:

int(idade) 

That way the code below works well.

def index(request,idade):

string = '''
    {% if idoso >= 65 %}
        Você já é idoso
    {% else %}
        Você não é idoso
    {% endif %}
'''
t = template.Template(string)
c = template.Context({'idoso':int(idade)})
return HttpResponse(t.render(c))
    
30.05.2018 / 02:08