Было бы довольно сложно определить в шаблоне, существует ли файл на самом деле или нет. Это была бы работа представления, предполагая, что {{web.image}}
фактически возвращает что-либо в первую очередь.
def my_view(request):
# some code here
import os
if os.path.exists(web.image_path): # for example
context = { 'web': web }
render_to_response('my_template.html', context, RequestContext(request)
Предполагается, что вы действительно знаете полный путь файловой системы к файлу изображения. Это не всегда так, особенно с приложением staticfiles в django 1.3.
Однако я был бы гораздо более обеспокоен тем, что иногда изображения существуют, а иногда нет. Почему это так? Изображения по какой-то причине удаляются? Если это так, вам нужен способ очистки базы данных.
Edit:
Поскольку, похоже, вам еще не понравился ответ, попробуйте следующее:
import os
class MyModel(models.Model):
image = models.Image...
# the rest of your fields
def get_image_url(self):
if os.path.exists(self.image.path):
return u'/%s/img/%s' % (self.app_label, self.image.filename)
return u'%s/img/default.jpg' % self.app_label
В своем шаблоне вы затем делаете следующее:
<img src="{{ STATIC_URL }}{{ web.get_image_url }}" />