python - 无效的块标记应为“空”或“endfor”。尝试显示 ImageField 时出错
问题描述
我尝试使用枕头库中的 ImageField。我有一个问题。
当我尝试显示我的图像时,我收到错误:
/home 处的 TemplateSyntaxError 第 62 行上的无效块标记:“articulo.nombre_imagen.url”,预期为“空”或“endfor”。您是否忘记注册或加载此标签?
这是我的第 62 行:
<a href="article/id/{{articulo.id}}"><img class="card-img-top" img src="{% articulo.nombre_imagen.url %}" alt=""></a>
正如您可以使用的那样,我正确使用了语法,我想...
这是来自我的models.py:
def upload_location(instance, filename):
return "static/img/" %(instance.id, filename)
class Articulo(models.Model):
nombre_imagen=models.ImageField(upload_to=upload_location,
null=True, blank=True,
width_field="width_field",
height_field="height_field")
width_field=models.IntegerField(default=0)
height_field=models.IntegerField(default=0)
任何人都可以帮忙吗?谢谢!
解决方案
尝试{{ }}
改用{% %}
:
<a href="article/id/{{ articulo.id }}"><img class="card-img-top" src="{{ articulo.nombre_imagen.url }}" alt=""></a>
更新。
在模板中:
<a href="article/id/{{ articulo.id }}"><img class="card-img-top" src="{% url 'preload_image' pk=articulo.pk %}" alt=""></a>
在视图中:
def preload_image(request, pk)
from .models import Articulo
from django.http import HttpResponse
from PIL import Image
articulo = get_object_or_404(Articulo, pk=pk)
img = Image.open(articulo.nombre_imagen.path)
response = HttpResponse(content_type='image/%s' % img.format)
img.save(response, img.format)
response['Content-Disposition'] = 'filename="image.%s"' % img.format
return response
将该方法也插入preload_image
到 urls.py;以及在哪里from .models
使用你的from APPNAME.models
.
推荐阅读
- c# - C#在文本文件中搜索单词并显示出现的次数
- c++ - 任何 cuda 调用上的 CudaErrorUnknown code=30
- elixir - 从列表创建结构
- django - Django 中的 form.visible_fields 是什么以及如何索引它?
- angular - 带套接字的 Angular - 每 10 秒获取一次
- sublimetext3 - Sublime Key "Build With" 绑定
- javascript - 插入谷歌日历 API v3 将时间提前 1 小时
- php - 带有 Pematon / adminer-custom 的 Adminer Tables-Filter 插件
- python - Python 3.6 中的多处理
- c# - 通过交易混合发布者确认和非确认