Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 27.11.2018
Сообщений: 45

Фильтрация повторяющихся элементов модели в шаблонах django

26.03.2022, 09:37. Показов 1512. Ответов 2

Студворк — интернет-сервис помощи студентам
Понадобилось отсеять повторяющиеся элементы модели на django. Мне не подходит удаление одинаковых элементов, а подходит только фильтрация. Моя модель включает в себя альбомы и фотографии, которые находятся в этих альбомах. Если в файле views.py я отправляю objects.all() для своего шаблона и пытаюсь вывести только мои альбомы без повторений, то в шаблоне выводится название альбома столько раз, сколько в нем находится изображений. Можно ли как-то сделать проверку на неповторяющийся вывод моих альбомов. PS: Я использую базу данных sql поэтому objects.all().distinct('albom') для меня вроде как не работает...

Мой views.py (хочу отфильтровать функцию proverka):

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from django.shortcuts import render, redirect
from .models import Image, Albom
 
def proverka(request):
    if not request.user.is_authenticated():
        return redirect("/accounts/login/")
    else:
        albom = Image.objects.all()
        return render(request, 'Фото/Альбом.html', {'albom': albom})
 
def gallery_view(request, pk):
    if not request.user.is_authenticated():
        return redirect("/accounts/login/")
    else:
        albom = Albom.objects.get(id=pk)
        return render(request, 'Фото/Фото.html', {'albom': albom})
Мой urls.py:

Python
1
2
3
4
5
6
7
from django.conf.urls import url
from . import views
 
urlpatterns = [
    url(r'^$', views.proverka, name="albomm"),
    url(r'^Альбом/(?P<pk>\d+)', views.gallery_view, name="foto"),
]
Мой models.py:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from django.db import models
 
class Albom(models.Model):
    name = models.CharField(max_length=120)
 
    def __str__(self):
        return self.name
 
def upload_gallery_image(instance, filename):
    return f"images/{instance.albom.name}/gallery/{filename}"
 
class Image(models.Model):
    image = models.ImageField(upload_to=upload_gallery_image)
    albom = models.ForeignKey(Albom, on_delete=models.CASCADE, related_name="images")
Мой шаблон html:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{% extends "Главная/Основа.html" %}
 
{% block albomm %}
 
{% for b in albom %}
  <a href="Альбом/{{ b.albom.id }}">{{ b.albom }}</a>
  <p>{{ b.albom.id }}</p>
{% endfor %}
 
 
<script>
 
</script>
 
{% endblock %}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.03.2022, 09:37
Ответы с готовыми решениями:

Django: получение нескольких элементов из модели
Нужно получить несколько элементов из BlogPost.objects но как не знаю. в Notepad++/NetBeans не подсвечивает что это. вот не выдержал и...

PyCharm, автодополнение кода в Django шаблонах
Можно ли как то настроить автодополнение кода в шаблонах? Например, я ввожу в редакторе:{% if request.G %} - тут должна появиться...

django-php: PHP в шаблонах Django
Смотрите, какая штука: django-php позволяет вам писать PHP-код прямо в шаблонах Django. Первая версия, не умеет fcgi, не может в...

2
243 / 178 / 73
Регистрация: 17.10.2018
Сообщений: 749
26.03.2022, 11:44
Лучший ответ Сообщение было отмечено Arseny14 как решение

Решение

Ну так если ты выводишь в шаблоне ссылку на альбом каждого изображения, то так и получается. Как написал - так и будет))) Можно юзать groupby, можно формат передаваемых данных поменять. Можно выборку по select_related/prefetch_related делать. Вариантов масса.
1
0 / 0 / 0
Регистрация: 27.11.2018
Сообщений: 45
26.03.2022, 14:27  [ТС]
Благодарю!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.03.2022, 14:27
Помогаю со студенческими работами здесь

Фильтрация повторяющихся результатов
У меня есть алгоритм обчисления: program my; var n1,n2,n3,res,i,j,k,s,sa : integer; begin readln(n1,n2,n3); for i := -1 to 1...

Модели на Django
Как это можно сделать?? 1). Создать любую модель с полем FileField 2). При загрузке файла в это поле из админки сделать...

Django модели
Добрый вечер, делаю сайт для запчастей автомобилей и есть следующая структура: Марка(Honda) -&gt; Модель(pilot) Как сделать модель...

Модели для Django
Привет, ребята. Помогите вразумить как правильно создать модели. А то что-то у меня проблемы с этим. Есть наборы данных (answer). В них...

Модели пользователей Django
День добрый. Стоит задача сделать две модели: продавец и покупатель. Каждый из них может авторизоваться и зарегистрироваться на сайте....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru