私はこのコードを持っています、問題はいくつかの画像に名前が付いていることですが、ファイルが存在しない名前に対応して、画像が表示されているかどうかをどのように知ることができますか?
<img src="{{ STATIC_URL }}images/{{web.image}}" />
上記のコードは、私のdjango画像をテンプレートでレンダリングするために使用されます。ありがとう。
私はこのコードを持っています、問題はいくつかの画像に名前が付いていることですが、ファイルが存在しない名前に対応して、画像が表示されているかどうかをどのように知ることができますか?
<img src="{{ STATIC_URL }}images/{{web.image}}" />
上記のコードは、私のdjango画像をテンプレートでレンダリングするために使用されます。ありがとう。
私はこれをクライアント側で、javascriptを使用して、「javascriptimageloaded」などのグーグルで実行します。
{{STATIC_URL}} images / {{web.image}}から展開されたURLの結果、404 Not Foundエラーが発生していると言っていますか?そして、あなたはどれがこれをしているのかを知りたいですか?
いくつかのPythonコード(おそらくurllibからのもの)を使用して、ビューでこれらのURLをテストする必要がありますが、そのURLがビューを実行しているサーバーと同じサーバー上にある場合は、ハングする可能性があります。
テンプレートでファイルが実際に存在するかどうかを判断するのは非常に困難です。{{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)
これは、イメージファイルへの完全なファイルシステムパスが実際に何であるかを知っていることを前提としています。特にdjango1.3のstaticfilesアプリでは、常にそうなるとは限りません。
ただし、画像が存在する場合と存在しない場合があることを、私はもっと心配しています。なぜそうなのですか?なんらかの理由で画像が削除されていませんか?そうである場合は、データベースをクリーンアップする方法が必要です。
編集:
あなたが好きな答えはまだないようですので、あなたはこれを試してみるべきです:
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 }}" />
Webが実際にアクセスしているデータベースオブジェクトであり(コメントが指摘しているように)、その「画像」がImageFieldである場合は、次を使用できます。
{% if web.image %}
<img src="{% web.image.url %}" />
{% else %}
<img src="{{ STATIC_URL }}images/MyDefaultImage.png" />
{% endif %}
このように、テンプレートは存在する場合にのみ画像を提供し、存在しない場合は代替画像を提供します。
ご質問を誤解してしまった場合は、あらかじめお詫び申し上げます。すべてを正しく理解したかどうかはわかりません。
最後に、私はsorlサムネイルを使用して解決策を見つけました:http://thumbnail.sorl.net/examples.html#template-examples
{% thumbnail item.image my_size_string crop="left" as im %}
<img src="{{ im.url }}">
{% empty %}
<p>No image</p>
{% endthumbnail %}
わたしにはできる。