ImageField
モデルにプロフィール写真を保存するために を使用しています。
イメージが定義されていない場合にデフォルトのイメージを返すように設定するにはどうすればよいですか?
ImageField
モデルにプロフィール写真を保存するために を使用しています。
イメージが定義されていない場合にデフォルトのイメージを返すように設定するにはどうすればよいですか?
私はこれを試したことはありませんが、フィールドでデフォルトとして設定できると比較的確信しています。
pic = models.ImageField(upload_to='blah', default='path/to/my/default/image.jpg')
編集: 愚かな StackOverflow では、他の人の回答にコメントすることはできませんが、その古いスニペットはあなたが望むものではありません。django-imagekitを強くお勧めします。これは、画像のサイズ変更や操作を非常に簡単かつきれいに行うことができるからです。
理論的には、モデル定義内で関数を使用することもできます。しかし、これが良い習慣かどうかはわかりません:
class Image(model.Models):
image = ....
def getImage(self):
if not self.image:
# depending on your template
return default_path or default_image_object
そして、テンプレート内
<img src="img.getImage" />
これにより、将来に向けて大きな柔軟性が得られます...
私はサムネイルの生成にsorlを使用しており、大きな成功を収めています
テンプレートでこれを試すことができます:
{% ifequal object.image None %}
<img src="DEFAULT_IMAGE" />
{% else %}
display image
{% endifequal %}