Фильтрация дублирующихся элементов модели в шаблонах django
На django возникла необходимость отсеять дублирующиеся элементы модели. Удаление одинаковых элементов мне не подходит, а подходит только фильтрация. Моя модель включает в себя альбомы и фотографии, которые находятся в этих альбомах. Если я передаю objects.all() моему шаблону в views.py и пытаюсь отобразить только мои альбомы без повторений, то название альбома отображается в шаблоне столько раз, сколько в нем изображений. Можно ли как-то проверить вывод моих альбомов без повторений. PS: Я использую sql базу данных, поэтому objects.all().distinct('albom'), похоже, не работает...
Мой views.py (я хочу фильтровать функцию proverka):
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:
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:
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-шаблон:
{% 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 %}
Я пытался фильтровать с помощью некоторых решений из интернета, но почему-то это не работает.
введите описание изображения здесь