Django初心者:)
パッケージdjango-storagesを介してS3ストレージを使用しています。管理者を介して新しい画像をアップロード/更新すると、これは完璧に機能するようです。
models.py(画像フィールド)
image = models.ImageField(
upload_to=path_and_rename("profiles"),
height_field="image_height",
width_field="image_width",
null=True,
blank=True,
editable=True,
help_text="Profile Picture",
verbose_name="Profile Picture"
)
image_height = models.PositiveIntegerField(null=True, blank=True, editable=False, default="100")
image_width = models.PositiveIntegerField(null=True, blank=True, editable=False, default="100")
次に、アップロード時に画像のサイズを変更することにしたので、saveoverrideメソッドに次のコードを追加してみてください...
def save(self, *args, **kwargs):
if not self.id and not self.image:
return
super(Profile, self).save(*args, **kwargs)
image = Image.open(self.image).seek(0)
(width, height) = image.size
size = ( 100, 100)
image = image.resize(size, Image.ANTIALIAS)
image.save(self.image.path)
これが問題です、これは次のエラーを引き起こしました...。
画像ファイルを識別できません
次に、昨日スタックに質問を投稿し(削除しました)、この回答にリンクしているユーザーDjango PIL:IOError私が理解している画像ファイルを識別できません(画像がアップロードされていないため、まだ読み取ることができません)。しかし、それが私の問題かどうかはわかりません。エラーが発生した場合、画像ファイルを識別できません。元のファイルが実際にS3にアップロードされていることがわかります(もちろんサイズ変更はありません)。
私が初心者であることを思い出して、この問題を解決する方法で誰かが私の例の保存方法を変更(および説明)できますか?つまり、アップロード時に新しい画像を100x100にサイズ変更する方法はありますか?
どうもありがとう