Результаты поиска не отображаются в шаблоне (Django)
Я новичок в Django и создаю очень простой проект. Однако, в части "поиск" моего проекта есть некоторые проблемы. Каждый раз, когда я пытаюсь выполнить поиск, он перенаправляет меня на шаблон поиска, но не показывает данные из базы данных. Нет сообщения об ошибке. Вот мой код...
models.py
class Event(models.Model):
eventname = models.CharField(max_length = 100)
class months(models.TextChoices):
JANUARY = 'January', _('January')
FEBRUARY = 'February', _('February')
MARCH = 'March', _('March')
APRIL = 'April', _('April')
MAY = 'May', _('May')
JUNE = 'June', _('June')
JULY = 'July', _('July')
AUGUST = 'August', _('August')
SEPTEMBER = 'September', _('September')
OCTOBER = 'October', _('October')
NOVEMBER = 'November', _('November')
DECEMBER = 'December', _('December')
month = models.CharField(
max_length= 10,
choices=months.choices,
default=months.JANUARY,
)
day = models.IntegerField()
year = models.IntegerField()
area = models.ForeignKey(Area, related_name = 'events', blank=True, null=True, on_delete = models.CASCADE)
guest = models.ForeignKey(Guest, related_name = 'events', on_delete = models.CASCADE)
recorded_by = models.ForeignKey(Userprofile, related_name = 'events', on_delete = models.CASCADE)
def __str__(self):
return self.eventname
event_list.html #the search bar in the template
<div class="search">
<form method="post" action="{% url 'event_search' %}" autocomplete="off">
<br>
{% csrf_token %}
<input type="text" name="event_srch" placeholder="Search Event">
<input type="submit" name="submit" value="Search" style="width: 24%"></p>
</form>
</div>
views.py
def event_search(request):
if request.method == "POST":
event_search = request.POST.get('event_srch')
events = Event.objects.filter(Q(eventname__contains=guest_search) | Q(day__contains=guest_search) | Q(month__contains=guest_search) | Q(year__contains=guest_search))
return render(request, 'core/event_search.html', {'event_search': event_search, 'events':events})
else:
return render(request, 'core/event_search.html')
event_search.html
{% if event_search %}
<div class="main-right">
<div class="h-1">
<h1>'{{ event_search }}' Events</h1>
<a href="{% url 'event_add' %}">Add Event</a>
</div>
<table rules="all" style="border: 1px;">
<thead>
<td>Event's Name</td>
<td>Event's Date</td>
<td>Action</td>
</thead>
<tbody>
{% for event in events %}
<tr>
<td>{{ event.eventname }}</td>
<td>{{ event.month }} {{ event.day }}, {{ event.year }}</td>
<td class="action_btn">
<a href="" class="edit_btn">Edit</a>
<a href="event_delete/{{ event.id }}" class="delete_btn">Delete</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% else %}
<h1>You didn't put any characters in search bar.</h1>
{% endif %}