Загрузка нескольких изображений в пост в Django View Error(Cannot resolve keyword 'post' into field.)
Моя модель :
class Gallary (models.Model):
ProgramTitle = models.CharField(max_length=200, blank = False)
Thum = models.ImageField(upload_to='Gallary/Thumb/',default = "", blank = False, null=False)
VideoLink = models.CharField(max_length=200, blank = True,default = "")
updated_on = models.DateTimeField(auto_now = True)
created_on = models.DateTimeField(auto_now_add =True)
status = models.IntegerField(choices=STATUS, default = 1)
total_views=models.IntegerField(default=0)
class Meta:
verbose_name = 'Add Gallary Content'
verbose_name_plural = 'Add Gallary Content'
#for compress images
if Thum.blank == False :
def save(self, *args, **kwargs):
# call the compress function
new_image = compress(self.Thum)
# set self.image to new_image
self.Thum = new_image
# save
super().save(*args, **kwargs)
def __str__(self):
return self.ProgramTitle
class GallaryDetails (models.Model):
Gallary = models.ForeignKey(Gallary, default = None, on_delete = models.CASCADE)
G_Images = models.ImageField(upload_to='Gallary/Images/',default = "", blank = False, null=False)
#for compress images
if G_Images.blank == False :
def save(self, *args, **kwargs):
# call the compress function
new_image = compress(self.G_Images)
# set self.image to new_image
self.G_Images = new_image
# save
super().save(*args, **kwargs)
def __str__(self):
return self.Gallary.ProgramTitle
Мое мнение
def gallery(request):
gallary = Gallary.objects.all()
context = {
'gallary': gallary.order_by('-created_on')
}
return render(request, 'gallery.html',context)
def album_details(request, post_id):
post = get_object_or_404(Gallary,pk=post_id)
photos = GallaryDetails.objects.filter(post=post)
context = {
'post':post,
'photos': photos
}
return render(request, 'album_details.html',context)
Галларный вид
<div class="our_gallery pt-60 ptb-80">
<div class="container">
<div class="row">
{% for post in gallary %}
<div class="col-lg-4 col-md-6">
<div class="singleAlbum">
<div class="albumThumb">
<a href="{% url 'album_details' post.pk %}">
{% if post.Thum %}
<img src="{{ post.Thum.url }}" alt="">
{% endif %}
</a>
</div>
<h5 class="albumTitle"><a href="{% url 'album_details' post.pk %}">{{post.ProgramTitle}}</a></h5>
</div>
</div>
{% endfor %}
</div>
</div>
Просмотр подробной информации о галерее
<div id="gallery" class="container-fluid">
{% for p in photos.all %}
<div class="popup-gallery">
{% if p.G_Images %}
<a href="{{ p.G_Images.url }}" title="The Cleaner"><img src="{{ p.G_Images.url }}" width="75" height="75"></a>
{% endif %}
</div>
{% endfor %}
ошибка === введите здесь описание изображения
Rвведите описание изображения здесьрезультат:
Я работаю над проектом портфолио и хочу добавить несколько изображений на Django admin сайта, затем отобразить одно из header_image и название проекта на главной странице/странице списка (подобно функциональности card class в bootstrap) и другие изображения на странице деталей. Возможно ли это?
Change
photos = GallaryDetails.objects.filter(post=post)
to
photos = GallaryDetails.objects.filter(Gallary=post)
GallaryDetails не имеет поля с названием post
. Оно называется Gallary
.
Также хорошей практикой является использование в именах Class names
только заглавных букв. Имена полей должны начинаться со строчных букв.