im tryinh使用枕头库中的ImageField。我对此有疑问。
当我尝试显示图像时,出现错误:
/ p中的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)
任何人都可以帮忙吗?谢谢!
答案 0 :(得分:1)
尝试使用{{ }}
代替{% %}
:
<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
的地方。
答案 1 :(得分:0)
问题解决了!如果有人想知道答案,我只需添加功能即可显示我的实际图像:
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
在我的urls.py中,我添加了网址:
url(r'^home', index, name='home'), it: url(r'^preload/(?P<pk>\d+)$', views.preload_image, name='preload_image'),
最后,我修改我的代码行以将其与以下功能配合使用:
<img class="card-img-top" src="{% url 'home:preload_image' pk=articulo.pk %}" alt="">
非常感谢@SergeyRùdnev!