【问题标题】:Get first element from many to many relationship django in template在模板中从多对多关系django中获取第一个元素
【发布时间】:2023-04-09 08:32:01
【问题描述】:

我正在尝试从查询集中获取第一个元素,该元素由模板中的 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,
 }

模板.py

{% for craft in crafts %}

<div style="background-image: url('{{ 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
 }

模板.py

{% for craft in crafts %}

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

{% endfor %}

【问题讨论】:

    标签: python django manytomanyfield


    【解决方案1】:

    通过使用解决了它

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

    【讨论】:

      猜你喜欢
      • 2012-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-22
      • 1970-01-01
      • 2013-11-16
      • 2015-11-16
      相关资源
      最近更新 更多