sccrthlt
sccrthlt

Reputation: 4344

Accessing model fields in django template

I am trying to access a model field inside a template. I am using this field inside an if statement:

{% for event in events %}
{% if event.homepage == 'False' %}
  <tr class='teamRow'>
    <td id='day' class="rowCell">
      {{ event.date }} {{ event.homepage }}
    </td>
  </tr>
{% else %}
  <p>Else</p>
{% endif %}
{% endfor %}

The if statement is not true. I know it is true because {{ event.homepage }} returns "False".

The event model:

class Event(models.Model):
    homepage = models.BooleanField()

I pass it the model here in my views:

def renderHomeNew(request):
events = Event.objects.all()
t = get_template('base_home_new.html')
context = {
    'events': events
    }
c = template.Context(context)
r = t.render(c)
return HttpResponse(r)

Am not following correct syntax here? I get no errors.

Upvotes: 1

Views: 3127

Answers (1)

Sami N
Sami N

Reputation: 1180

You're trying to compare a boolean value to a string. Your Event-model's homepage is a BooleanField. Try:

{% if not event.homepage %}

See also:

https://docs.djangoproject.com/en/dev/ref/templates/builtins/#boolean-operators https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.BooleanField

Upvotes: 2

Related Questions