【发布时间】:2021-11-19 17:16:57
【问题描述】:
我正在尝试在 Django 中显示图像,问题是当我添加 HTML 模板时它不会显示,我尝试了所有组合(例如:{{ cars.image_main.url }}、{{ car.image_main.url }})。
如果我删除所有 HTML 表单模板并写 {{ cars.image_main.url }},图像就会显示出来。但是当我放回 HTML 模板并将{{ cars.image_main.url }} 插入代码时,图像确实显示出来了。
models.py:
class Car(models.Model):
dealer = models.ForeignKey(Dealer, on_delete=models.DO_NOTHING)
brand = models.CharField(max_length=100)
CATEGORY = (
('New', 'New'),
('Used', 'Used')
)
category = models.CharField(max_length=50, choices=CATEGORY)
image_main = models.ImageField(upload_to='images')
image1 = models.ImageField(upload_to='images', blank=True)
image2 = models.ImageField(upload_to='images', blank=True)
image3 = models.ImageField(upload_to='images', blank=True)
engine = models.CharField(max_length=100, blank=True)
stock_number = models.IntegerField(blank=True, null=True)
mpg = models.CharField(max_length=100, blank=True)
exterior_color = models.CharField(max_length=100, blank=True)
interior_color = models.CharField(max_length=100, blank=True)
drivetrain = models.CharField(max_length=100, blank=True)
mileage = models.IntegerField(blank=True, null=True)
sold = models.BooleanField(default=False, blank=False)
transmission = models.CharField(max_length=50, blank=True)
YEAR_CHOICES = [(r, r) for r in range(2005, datetime.date.today().year+1)]
year = models.IntegerField(
('year'), choices=YEAR_CHOICES, default=datetime.datetime.now().year)
power = models.IntegerField()
fuel = models.CharField(max_length=50, blank=True)
price = models.IntegerField()
description = models.TextField()
date = models.DateField()
def __str__(self):
return self.brand
def get_absolute_url(self):
return reverse('car_detail', kwargs={
'car_id': self.id
})
views.py:
def car_detail(request, car_id):
cars = get_object_or_404(Car, id=car_id)
context = {
'cars': cars
}
return render(request, 'car_detail.html', context)
car_detail.html:
<li data-thumb="images/thumbnail1.jpg"> <a href="#"><img src="images/thumbnail1.jpg" alt="" /></a> </li>
【问题讨论】:
-
在返回之前添加
print(context, cars)并检查您是否得到任何东西。 -
你能更具体一点吗?我可以显示页面中对象的任何细节,除了图像。
-
确保在您的 urls.py 中添加
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) -
我已经有了。