我的用例是:
我在某些视图中生成具有某些 url qrcode,然后我在模板中使用它,如下所示:
<img src="/qrcode/2">
我知道 holder.js,我想显示如下内容:
<img src="holder.js/200x200/text:qrcode not avaliable">
当由于任何原因(例如错误的 id、PIL 库的 soem 崩溃...)而未加载 qrcode 图像时。
什么是最干净的解决方案?
我正在尝试查看:
return HttpResponse("holder.js/200x200/text:qrcode not avaliable", content_type="image/png")
也将 mime 类型设置为文本,但它不会替换 img 标记中的源 src。
更新:
我想了一会儿,我开始害怕,我正在尝试重新发明轮子......所以我决定在视图呈现页面时传递适当的 url:
def certificate(request, pk):
try:
spot = Spot.objects.get(pk=pk)
if request.method == 'GET':
link = '/qrcode/%d' % int(pk)
return render(
request,
'certificate.html',
{'spot': spot, 'qrcode_link': link})
except:
return render(
request,
'certificate.html',
{'spot': None,
'qrcode_link': 'holder.js/200x200/text:qrcode not avaliable'})
在模板中我只是:<img src="{{qrcode_link}}">
但是这个问题仍然是开放的,所有的想法,如何做得更好都会被理解:-)