14

djangoシェルで画像ファイルを保存しようとしています。djangoシェルで画像/ファイルを保存する

マイmodel.pyは次のとおりです。

class user(models.Model): 
    name=models.CharField(max_length=20) 
    pic=models.ImageField() 

Everyhingは、管理者とフォームと罰金ですが、私はシェルを使用して画像を保存したい:

あなたは終了します
>>>user1=User(name='abc', pic="what to write here") 
+0

http://stackoverflow.com/questions/1232434/upload-a-file-from-django-shell – catherine

答えて

38
from django.core.files import File 

user1=User(name='abc') 
user1.pic.save('abc.png', File(open('/tmp/pic.png', 'r'))) 

よう

何か画像abc.pngはにコピーされています0ディレクトリ がImageFieldに指定されています。

この場合、user1.pic.saveメソッドもuser1インスタンスを保存します。 ImageFieldを保存するためのドキュメントはここhttps://docs.djangoproject.com/en/dev/ref/files/file/

+0

このメソッドを使用してpngを保存しようとしましたが、このエラーが発生しました: 'codecs.charmap_decode(input、self .errors、decoding_table)[0] odeError: 'charmap'コーデックは、位置207の0x8fバイトをデコードできません:char to 'これを修正する方法は知っていますか? – AllTradesJack

+0

@AllTradesJackは、「r」フラグの代わりに「rb」を使用します。これは、Royが以下に回答した通りです –

10
from django.core.files import File 
user1=User(name='abc') 
user1.pic.save('abc.png', File(open('/tmp/pic.png', 'rb'))) 

を見つけることができる代わりに、「R」の「RB」を使用してください。あなたがpython3を使用している場合。

+0

これは元の回答のコメントになるはずです。 –

関連する問題