Performing a check to see whether or not a user is attending or not. How do I pass the context variable is_attending
to the template without getting a syntax error on 'is_attending': context['is_attending']
? The check is basically for styling divs and whatnot. What am I doing wrong?
template:
{% for event in upcoming %}
{% registration %}
{% if is_attending %}
Registered!
{% else %}
Register button
{% endif %}
yadda yadda divs...
{% endfor %}
filters.py
@register.inclusion_tag('events/list.html', takes_context=True)
def registration(context, event):
request = context['request']
profile = Profile.objects.get(user=request.user)
attendees = [a.profile for a in Attendee.objects.filter(event=event)]
if profile in attendees:
'is_attending': context['is_attending']
return is_attending
else:
return ''
Thank you!
'is_attending': context['is_attending']
is not valid python. Rather, it looks like a partial dictionary. Since.inclusion_tag()
code is supposed to return a dict, perhaps you meant the following instead:Also note that
takes_context
means you'll only take the context as an argument. From the howto on custom tags:Thus your tag should be:
and your full method can take the
event
argument directly from the context: