3

easy_thumbnailsアプリケーションに画像を保存していました。ThumbnailerImageField というフィールドを持つモデル名Profileがあります。picture私のコードでは、次のコードを使用しているURLを使用して画像を取得しています

f = urllib.request.urlretrieve(picture_url)

ここで、f[0] はディレクトリ内のファイルへのパスを含む文字列です/tmp/。この画像を画像フィールドに保存したいと思います。だから、私は次のコードを使用しました

profile.picture.save(os.path.basename(picture), File(open(f[0])))

しかし、問題は、保存したファイルが何らかの理由で破損していて、開くことができないことです。でファイルを確認する/tmp/と、適切な画像ファイルです。ここで私が間違っていることを誰かが指摘できますか?

編集:

私のフィールド定義は次のとおりです picture = ThumbnailerImageField(upload_to=name, max_length=3072)

そしてname、次のとおりです

def name(inst, fname):
f = sha256((fname + str(timezone.now())).encode('utf-8')).hexdigest()
f += fname
return '/'.join([inst.__class__.__name__, f])
4

1 に答える 1