У меня есть две модели, связанные отношением один ко многим.Как я могу получить значение из одного поля одной модели через другую?Мне нужно получить значение "низкий" из модели изображения из модели альбома.В моей модели Image "low" - это путь к копии изображения в низком разрешении, а "path_to_image" - это путь к полноразмерной.
Я использую Django 2.1, встроенную sqlite db.
models.py:
from django.db import models
from django.utils.timezone import now
class Album(models.Model):
title = models.CharField(max_length=120)
def __str__(self):
return self.title
class Image(models.Model):
path_to_image = models.CharField(max_length=120)
low = models.CharField(max_length=120)
pub_date = models.DateField(default=now)
album = models.ForeignKey(Album, on_delete=models.CASCADE)
def __str__(self):
return self.path_to_image
views.py:
def albums(request):
albums_list = Album.objects.all()
paginator = Paginator(albums_list, 20)
page = request.GET.get('page')
albums = paginator.get_page(page)
random_idx = random.randint(0, Image.objects.count() - 1)
image = Image.objects.all()[random_idx]
context = {
'albums': albums,
'image': image,
}
return render(request, 'gallery/albums.html', context)
album.html:
<div class="item2 my-gallery responsive" itemscope itemtype="http://schema.org/ImageGallery">
{% for album in albums %}
<div class="gallery">
<a href="/albums/{{ album.id }}">
<img src="{{album.image_set.model.low}}" width="300" height="225">
</a>
<div class="desc">{{album}}</div>
</div>
{% endfor %}
</div>
Я хочу получить значениеИз модели изображения я это <img>
тег.Итак, это возможно без рефакторинга всего кода полностью?(Кроме того, в файле views.py я пытался получить случайное изображение из альбома, чтобы установить его в качестве предварительного просмотра, но оно тоже не работает.)