Несколько изображений в одном наборе запросов Django
Как добавить несколько изображений в один кверисет django, который будет иметь поле image? Это можно сделать через foreignkey, но если я использую разные таблицы для изображений, то идентификаторы будут генерироваться по-разному
Может ли кто-нибудь помочь мне, как именно я могу загрузить несколько изображений в один кверисет django? Пример: Мы можем загрузить несколько изображений в один пост Facebook
Наиболее распространенным способом реализации отношения "многие-к-одному" является создание еще одной таблицы и ее подключение через внешний ключ. Вы можете сделать что-то подобное в вашем models.py :
class Post(models.Model):
title = models.CharField(max_length=250)
image = models.FileField(blank=True)
class Images(models.Model):
post = models.ForeignKey(Post, default=None, on_delete=models.CASCADE)
images = models.FileField(upload_to = 'images/')
Здесь атрибут post класса Images будет использоваться для связи изображений с соответствующими постами. В views.py вы можете фильтровать изображения на основе атрибута внешнего ключа таким образом :
def detail_view(request, id):
post = get_object_or_404(Post, id=id)
images = PostImage.objects.filter(post=post)
return render(request, 'detail.html', {'post':post,'images':images})
Теперь все изображения, переданные в качестве контекста, являются изображениями, которые должны были быть связаны с этим конкретным постом для использования в вашем шаблоне.