join() argument must be str, bytes, or os.PathLike object, not 'dict'
Проблема: при открытии любой из категорий у меня ошибка которая в заголовке. У меня есть страница с категориями:
<ul class="list-group">
<a style="margin-bottom: 20px" href="{% url 'incateg' 'electronics' %}"><li class="list-group-item">Electronics</li></a>
<a style="margin-bottom: 20px" href="{% url 'incateg' 'cars' %}"><li class="list-group-item">Cars</li></a>
<a style="margin-bottom: 20px" href="{% url 'incateg' 'sports' %}"><li class="list-group-item">Sports</li></a>
<a style="margin-bottom: 20px" href="{% url 'incateg' 'food' %}"><li class="list-group-item">Food</li></a>
<a style="margin-bottom: 20px" href="{% url 'incateg' 'accessories' %}"><li class="list-group-item">Accessories</li></a>
<a style="margin-bottom: 20px" href="{% url 'incateg' 'books' %}"><li class="list-group-item">Books</li></a>
</ul>
Функция:
@login_required(login_url='/login')
def categor(request, cat):
cat_list = Listing.objects.filter(category=cat)
empty = False
if len(cat_list) == 0:
empty: True
return render("auctions/incateg.html", {
"cat": cat,
"empty": empty,
"items": cat_list
})
И цикл в incateg.html который должен показать все итемы в категории которая открыта:
{% for item in items_list reversed %}
{% if item.categor == cat %}
{% endif %}
{% if empty %}
<p>There is no avaliable listings in this category</p>
{% endif }
{% endfor %}
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
Первым параметром в render должен передаваться request, вторым - путь к шаблону, третьим - данные (контекст), см. документацию. Вы request не передаете, получается путь к шаблону передается вместо request, а данные для шаблона вместо пути шаблона.
Другие проблемы в коде, которые я вижу:
- В словаре есть ключ
items, но нетitems_list, который указан в шаблоне. empty: Trueникак не модифицирует переменнойempty, нужно заменить на присваиваниеempty = True.- У объектов в вашем списке, насколько я понимаю, есть поле
category(судя по имени параметра, используемому при фильтрации), а в шаблоне проверяется полеcategor. - По логике проверять значение
emptyв шаблоне нужно вне цикла, т.е. сделать, чтобы for был вложен в if, а не наоборот (как сейчас). Сейчас у вас при пустом списке for ни разу не выполнится, и<p>There is no avaliable listings in this category</p>не отобразится.
