Python 应为无效的块标记';空的';或';endfor';。尝试显示ImageField时出错

Python 应为无效的块标记';空的';或';endfor';。尝试显示ImageField时出错,python,django,image,block,imagefield,Python,Django,Image,Block,Imagefield,我正在尝试使用枕头库中的ImageField。我有一个问题 当我试图显示我的图像时,我得到错误: TemplateSyntaxerOn/home错误 第62行的块标记无效:“articulo.nombre_imagen.url”,应为“empty”或“endfor”。您是否忘记注册或加载此标签 这是我的第62行: <a href="article/id/{{articulo.id}}"><img class="card-img-top" img src="{% articulo

我正在尝试使用枕头库中的ImageField。我有一个问题

当我试图显示我的图像时,我得到错误:

TemplateSyntaxerOn/home错误 第62行的块标记无效:“articulo.nombre_imagen.url”,应为“empty”或“endfor”。您是否忘记注册或加载此标签

这是我的第62行:

<a href="article/id/{{articulo.id}}"><img class="card-img-top" img src="{% articulo.nombre_imagen.url %}" alt=""></a>

有人能帮忙吗?谢谢大家!

试着用
{{}
代替
{%}

<a href="article/id/{{ articulo.id }}"><img class="card-img-top" src="{{ articulo.nombre_imagen.url }}" alt=""></a>

还可以将该方法
预加载\u image
插入url.py;在哪里使用APPNAME.models中的
问题解决了!如果有人想知道答案,我只需添加一个函数,因为我可以显示我的实际图像:

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
在my urls.py中,我添加了url:

url(r'^home', index, name='home'), it: url(r'^preload/(?P<pk>\d+)$', views.preload_image, name='preload_image'), 
url(r'^home',index,name='home'),it:url(r'^preload/(?P\d+)$),views.preload\u image,name='preload\u image'),
最后,我修改我的行以将其与函数一起使用:

<img class="card-img-top" src="{% url 'home:preload_image' pk=articulo.pk %}" alt="">


非常感谢@Sergey Rùdnev

现在它工作了,但它不显示图像。可能是什么?因为您的
articulo
是唯一的对象,没有显示和响应图像的方法。更新答案和示例代码。对不起,我在django没有工作。你能帮我吗?。如何在url中发送方法。我在url.py中的url是这样的:url(r'^home',index,name='home'),如何在其上包含预加载图像?如果我问的问题太多,我很抱歉:)好的。只需在
url(r'^home',index,name='home'),
it:
url(r'^preload/(?P\d+)$),views.preload_image,name='preload_image'),
Ok,我刚刚这么做了,但我再次收到错误“第62行的块标记无效:'preload_image',预期为'empty'或'endfor'。您忘记注册或加载此标记了吗?”。这是我的url.py,您可以看到:url(r'^home',index,name='home')、url(r'^preload/(?P\d+)$)、preload_image,name='preload_image'),我只是在我的url中包含新的url。py您没有关闭for或if标记。请检查您的模板,因为您尚未共享整个模板。
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
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="">