“ RelatedManager”对象不可下标

lucasrf27

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

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

models.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>

我正在获取queryset对象,尽管未显示任何图像https://github.com/lucasrf27/dealership

威廉·范昂塞姆

它应该是:

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

或者,您可以使用下标:

def first_image(self):
    return self.images.all()[0]

您不能对self.images关系本身进行下标,需要使用.all().first()

请注意,两者之间的差异很小。如果没有相关图像,self.images.first()则将返回None,而self.images.all()[0]将引发错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

对象不可下标

来自分类Dev

LabelEncoder对象不可下标

来自分类Dev

NoneType对象不可下标

来自分类Dev

“方法”对象不可下标

来自分类Dev

错误:“功能”对象不可下标

来自分类Dev

BeautifulSoup:TypeError:'NoneType'对象不可下标

来自分类常见问题

TypeError:“ zip”对象不可下标

来自分类Dev

Python'TypeError':'Generator'对象不可下标

来自分类Dev

Python:TypeError:“ int”对象不可下标

来自分类Dev

TypeError:“ float”对象不可下标

来自分类Dev

命令光标的对象不可下标

来自分类Dev

Django TypeError'method'对象不可下标

来自分类Dev

TypeError:'float'对象不可下标--Python

来自分类Dev

Python TypeError:“设置”对象不可下标

来自分类Dev

熊猫适用,“浮动”对象不可下标

来自分类Dev

TypeError:“样式器”对象不可下标

来自分类Dev

列表元素(对象)不可下标

来自分类Dev

TypeError:“响应”对象不可下标

来自分类Dev

TypeError:“ NoneType”对象不可下标(PYTHON)

来自分类Dev

Python TypeError:“函数”对象不可下标

来自分类Dev

TypeError:“图像”对象不可下标

来自分类Dev

NetworkX Graph对象不可下标

来自分类Dev

TypeError:“ int”对象不可下标

来自分类Dev

'datetime.datetime'对象不可下标

来自分类Dev

Python错误:int对象不可下标

来自分类Dev

类型对象不可下标-python

来自分类Dev

类型错误:“int”对象不可下标?

来自分类Dev

类型错误:“机架”对象不可下标

来自分类Dev

类型错误:“方法”对象不可下标