Django:仅在模板中呈现图像网址的最后一部分

时间:2018-12-14 22:27:55

标签: django

我有一个将图像字段作为属性的模型。我需要在模板中呈现此模型的属性,但特别是image.url属性。

现在,我可以将其渲染为:

/media/images/floral.jpg 

但是,我只想渲染最后一部分:

floral.jpg

所以我在模板中使用它:

{{ cart_item.image.url }}

如何仅渲染图像网址的最后一部分?

class SizeQuantity(models.Model):
    cart = models.ForeignKey(Cart, on_delete=models.CASCADE)
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    size = models.CharField(max_length=20, choices=TAMANIOS)
    quantity = models.CharField(max_length=20, choices=CANTIDADES)
    image = models.ImageField(upload_to='images', blank=True, null=True)
    uploaded_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.size

view.py

def cart_detail(request, total = 0, counter = 0, cart_items = None):
    try:
        cart = Cart.objects.get(cart_id = _cart_id(request))
        cart_items =  SizeQuantity.objects.filter(cart = cart)

    except ObjectDoesNotExist:
        pass

    return render(request, 'cart.html', dict(cart_items = cart_items, total = total, counter = counter))

1 个答案:

答案 0 :(得分:1)

将此属性添加到SizeQuantity模型中:

@property
def image_filename(self):
    return self.image.url.split('/')[-1]

模板中的名称为{{ cart_item.image_filename }}