Как заставить Django шаблонов отображать ярлыки - PullRequest
0 голосов
/ 06 мая 2020

Привет, ребята, я новичок в django ... Я смотрел видео на YouTube и читал книги на Django, но все еще борюсь с шаблонами. Я работаю над проектом электронной коммерции, и мне бы очень хотелось помочь с шаблонами. Поэтому я хочу, чтобы в моем шаблоне отображался список категорий в виде ссылок на боковой панели. Я определил поле заголовка в своих моделях категорий, и мне удалось сопоставить URL-адрес ... но я все еще не получаю список категорий на боковой панели моей страницы индекса.

Это мой шаблон URL, и он отлично работает. Когда я нажимаю 127.0.0.1.000 / food, он работает (еда - это категория)

  path('<slug:category_slug>/', views.category, name='category'),

функция просмотра

def category(request, category_slug):
    """Defines category views"""
    categories= get_object_or_404(Category, slug= category_slug)
    context = {'categories': categories}
    return render(request, "categories_list.html", context)

Это список категорий. html шаблон, который я нужна помощь с

<h3> Shop by Category </h3>
    {% if category in categories %}
    <li>
          <a href ="{{category.slug}}"> {{category.name}}</a>
    </li>
{% endif %}

Мой Wi-Fi sh - чтобы категории отображались на боковой панели моей индексной страницы в виде ссылок. Я использовал {% include 'category_list.html' %} в своем шаблоне индексной страницы, и он отображает только заголовок «Магазин по категориям» вместо категорий, когда я нахожусь на индексной странице. Я пробовал for l oop в своем шаблоне, но если не сработал, он продолжал говорить, что объект категории не повторяется ... так что в итоге я использовал оператор if. Любая помощь будет оценена

1 Ответ

0 голосов
/ 06 мая 2020

Метод get_object_or_404 () возвращает единственный экземпляр или None, если он не найден. Вы не можете выполнить итерацию на объекте.

Попробуйте следующий

Просмотр

def category(request, slug):
    """Defines category views."""
    return render(request, 'categories_list.html', {'category': get_object_or_404(Category, slug=slug)})

Шаблон

{{ category.slug }}
...