gpt4 book ai didi

python - “RelatedManager”对象不可订阅

转载 作者:行者123 更新时间:2023-12-01 00:27:11 27 4
gpt4 key购买 nike

感谢您的宝贵时间。我正在尝试获取foreignKey图像模型的第一张图像并与其他字段一起显示

我已经阅读了一些有关相关模型的问题和文档,我得到的最好的结果是在我的模型上创建一个函数,以便在获取第一张图像后调用它。

模型.py:

class Veiculos (models.Model):
YEAR_CHOICES = []
for r in range(1960, (datetime.now().year+1)):
YEAR_CHOICES.append((r, r))

modelo = models.CharField(max_length=100)
potencia = models.CharField(max_length=40)
cor = models.CharField(max_length=30)
preco = models.DecimalField(max_digits=8, decimal_places=2)
ano = models.IntegerField(('ano'), choices=YEAR_CHOICES, default=datetime.now().year)
category = models.ManyToManyField('Categorias')
created_time = models.DateTimeField(auto_now=True)
updated_time = models.DateTimeField(auto_now_add=True)

def __str__(self):
return '%s %s' % (self.modelo, self.preco)

def get_absolute_url(self):
return reverse('category2')

def first_image(self):
return self.images.first()

def get_image_filename(instance, filename):
modelo = instance.veicle.modelo
slug = slugify(modelo)
return "veiculos_imagens/%s-%s" % (slug, filename)


class Imagens (models.Model):
veicle = models.ForeignKey(Veiculos, default=None, on_delete=models.CASCADE, related_name='images')
imagem = models.ImageField(upload_to=get_image_filename)

views.py:

def amp_category(request):
queryset = Veiculos.objects.all()
return render(request, 'amp/category.amp.html', {'veiculos': queryset})

category.amp.html:

{% extends "amp/base.amp.html" %} {% block tittle %}
<title>ok</title>{% endblock tittle %} {% block content %}

<body>
<h1>ok2</h1>
{% for veiculo in veiculos %}
<h2>{{veiculo.modelo}}</h2>
<amp-img src="{{ veiculo.first_image.url }}" alt="ok" width="300" height="340"></amp-img>
{% endfor %}

</body>

{% endblock %}

</html>

我正在获取查询集对象,尽管没有显示任何图像 https://github.com/lucasrf27/dealership

最佳答案

应该是:

def first_image(self):
return self.images<b>.first()</b>

或者您可以使用下标:

def first_image(self):
return self.images<b>.all()</b>[0]

您不能为 self.images 关系本身添加下标,您需要使用 .all().first()

请注意,两者之间存在细微差别。如果没有相关图像,则 self.images.first() 将返回 None,而 self.images.all()[0] > 将引发错误。

关于python - “RelatedManager”对象不可订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58481893/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com