Реверс для 'logout' не найден. 'logout' не является допустимой функцией представления или именем шаблона. Даже если я удалил эту часть
Я реализую функцию поиска в моем представлении списка мемов:
class MemeListView(ListView):
model = Meme
paginate_by = 100
ordering = ['-created_at']
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['now'] = timezone.now()
search_value = self.request.GET.get("search", False)
if search_value:
memes = Q(title__icontains=search_value)
objects = Meme.objects.filter(memes).select_related().distinct().order_by('-created_at')[:10]
context['meme_list'] = objects
context['search'] = search_value
return context
Единственная часть шаблона, которая содержит logout (я удалил ее и перезапустил сервер. Ошибка осталась)
{% if user.is_authenticated %}
<li class="nav-item">
<a class="nav-link" href='{% url 'site:logout' %}'>Logout</a>
</li>
{% endif %}
Теперь проблема возникает, только если я ищу вещь, которая имеет 0 результатов. Если я ищу и нахожу что-то, все работает нормально. Есть идеи, что происходит?
Потеряв надежду, я попробовал следующее:
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['now'] = timezone.now()
search_value = self.request.GET.get("search", False)
if search_value:
memes = Q(title__icontains=search_value)
objects = Meme.objects.filter(memes).select_related().distinct().order_by('-created_at')[:10]
#difference from here
if len(objects)>0:
context['meme_list'] = objects
context['search'] = search_value
else:
context['meme_list'] = False
return context
И это решило проблему. Похоже, проблема была в том, что если мемы не были найдены, то существовал список meme_list, в котором не было объектов.