Установка только категорий для просмотра на главной странице/установка количества изображений

Здравствуйте, в настоящее время я пытаюсь сделать фотоблог для записи жизни моего сына с фотографиями по мере его роста. Выше приведен мой код для "домашней" страницы (название как галерея).

На данный момент у меня есть цикл for, который добавляет класс "card" на страницу галереи каждый раз, когда я загружаю изображение.

В идеале я хотел бы сделать так, чтобы отображалась только каждая созданная мной категория с одной фотографией из этой категории, а не все фотографии, которые я загружаю на сайт. Я просто не подумал о том, сколько фотографий я буду загружать, и главная страница превратится в огромную свалку фотографий.

Если у кого-нибудь есть идеи, как я могу этого добиться, или любые другие рекомендации, буду очень признателен.

TYIA

Поправьте меня, если я ошибаюсь, но я думаю, что вы пытаетесь добиться того, чтобы иметь различные разделы, например, "молодой", "подросток", "взрослый" или что-то в этом роде, и показывать изображения только в этих разделах с названием раздела в качестве тега в самом изображении? Если это так, то вы можете сделать что-то вроде этого:

{% for photo in photos %}
    {% if photo.tag == young %}
        <h1>Show young images here</h1>
    {% elif photo.tag == teenager %}
        <h1>Show teenage images here</h1>
    {% elif photo.tag == adult %}
        <h1>Show adult images here</h1>
    {% else %}
        <h1>No photo's yet</h1>
    {% endif %}
{% endfor %}

Альтернативно, вы можете сделать это в своих представлениях и подавать разные изображения разным шаблонам, если вы этого хотите.

Это будет выглядеть примерно так:

def teenageImages(request):
    teenageImage = Image.objects.raw("SELECT * FROM 
    photos WHERE tag = 'teenager' ")
    template = loader.get_template('teenager_photos.html')
    context = {
        'photos': teenageImage
    }
    return HttpResponse(template.render(context, request))

Вы также можете пойти другим путем и использовать filter, более подробную информацию о filter можно найти здесь.

Я предлагаю вам взглянуть на RoutablePageMixin, см. документацию здесь. С его помощью вы можете заставить вашу домашнюю страницу принимать категорию в качестве переменной, как это делает следующий URL: davidsonsblog.com/category/foobar

Вы можете определить кверисет, отфильтрованный по категориям и упорядоченный случайным образом (например, методом кверисета .order_by('?')). Если вы хотите показать только одно изображение, добавьте к queryset метод .first().

Меню будет генерировать ссылки соответствующим образом.

Вернуться на верх