I have an event calendar in Django / Python and I am trying to get it to automatically not show events that have already passed based on the current date. The code I am working with looks like this:
views.py
class HomeView(ListView):
paginate_by = 1
model = NewsLetter
template_name = 'home.html'
ordering = ['-post_date']
def events(self):
return Event.objects.order_by('-event_date')
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['Today'] = timezone.now().date()
return context
events.html
{% for event in view.events %}
<div class="py-2">
{% if event.date <= Today %}
<ul>
<li class="font-bold text-gray-900">{{ event.date }}</li>
<li class="font-medium text-gray-800">{{ event.name }}</li>
<li class="font-medium text-gray-800">{{ event.description }}</li>
<strong><p>Location:</p></strong>
<li class="font-medium text-gray-800">{{ event.location }}</li>
{% if event.website_url %}
<a class="font-medium text-gray-800 hover:font-bold hover:text-blue-600" href="{{ event.website_url }}"
target="blank">Information
</a>
{% endif %}
</ul>
{% endif %}
</div>
<hr>
{% endfor %}