Получение первого элемента из отношения "многие ко многим" django в шаблоне

Я пытаюсь получить первый элемент из queryset, который возвращается полем модели, которое является ManyToManyField прямо в шаблоне.

models.py

class CraftImage(models.Model):
image = models.ImageField(upload_to='crafts_images/', null=True)


class Craft(models.Model):
 title = models.CharField(max_length=100, null=False, blank=False)
 images = models.ManyToManyField(CraftImage, blank=True, related_name='craft_images')

views.py

def work_all(request):
 crafts = Craft.objects.all()
 context = {
  'crafts': crafts,
 }

template.py

{% for craft in crafts %}

<div style="background-image: url('{% static 'craft.images[0].image.url' %}');"></div>

{% endfor %}

Что-то вроде этого.

Я также пытался следовать некоторым решениям, которые я нашел и которые не сработали для меня, например,

views.py

 crafts = Craft.objects.all()
 images = Craft.objects.values_list('images').first()
 print(images)
 context = {
  'crafts': crafts,
  'images': images
 }

templates.py

{% for craft in crafts %}

<div style="background-image: url('{% static 'images.image.url' %}');"></div>

{% endfor %}

Решил ее с помощью

<div style="background-image: url('{{ craft.images.all.first.image.url }}');"></div>
Вернуться на верх