我有一个将图像字段作为属性的模型。我需要在模板中呈现此模型的属性,但特别是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))
答案 0 :(得分:1)
将此属性添加到SizeQuantity模型中:
@property
def image_filename(self):
return self.image.url.split('/')[-1]
模板中的名称为{{ cart_item.image_filename }}
。