44

ImageField モデルにプロフィール写真を保存するために を使用しています。

イメージが定義されていない場合にデフォルトのイメージを返すように設定するにはどうすればよいですか?

4

6 に答える 6

46

私はこれを試したことはありませんが、フィールドでデフォルトとして設定できると比較的確信しています。

pic = models.ImageField(upload_to='blah', default='path/to/my/default/image.jpg')

編集: 愚かな StackOverflow では、他の人の回答にコメントすることはできませんが、その古いスニペットはあなたが望むものではありません。django-imagekitを強くお勧めします。これは、画像のサイズ変更や操作を非常に簡単かつきれいに行うことができるからです。

于 2009-08-14T09:26:47.333 に答える
11

理論的には、モデル定義内で関数を使用することもできます。しかし、これが良い習慣かどうかはわかりません:

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を使用しており、大きな成功を収めています

于 2009-08-14T13:41:02.013 に答える
3

テンプレートでこれを試すことができます:

{% ifequal object.image None %}
    <img src="DEFAULT_IMAGE" />
{% else %}
    display image
{% endifequal %}
于 2009-08-14T09:23:59.680 に答える