プロジェクト内のあるモデルから別のモデルに画像をコピーしたいと考えています。これらが私のモデルであるとします:
class BackgroundImage(models.Model):
user = models.ForeignKey(User)
image = models.ImageField(upload_to=get_upload_file_name)
caption = models.CharField(max_length=200)
pub_date = models.DateTimeField(default=datetime.now)
class ProfilePicture(models.Model):
user = models.ForeignKey(User)
image = models.ImageField(upload_to=get_upload_file_name)
caption = models.CharField(max_length=200)
pub_date = models.DateTimeField(default=datetime.now)
@classmethod
def create_from_bg(cls, bg_img):
img = cls(user=bg_img.user, image=bg_img.image, caption=bg_img.caption+'_copy', pub_date=bg_img.pub_date)
img.save()
return img
今のところ、私はこれらを行うことができます:
ユーザーを取得するには
>>>m = User.objects.get(username='m')
ユーザーのプロフィール画像セットを取得するには
>>>m_pro_set = m.profilepicture_set.all()
>>>m_pro_set
[<ProfilePicture: pro_mik>]
ユーザーの背景画像から画像オブジェクトを取得する
>>>m_back_1 = m.backgroundimage_set.get(id=2)
>>>m_back_1
<BackgroundImage: bg_mik>
その後:
>>>profile_pic = ProfilePicture.create_from_bg(m_back_1)
チェックすると、新しいインスタンスが作成されます。
>>>m_pro_set
[<ProfilePicture: pro_mik>,<ProfilePicture: bg_mik>]
しかし、パスを確認すると、メディア フォルダーでさえ、同じ画像であり、画像ファイルの実際のコピーではありません。
>>>profile_pic.image
<ImageFileField: uploaded_files/1389904144_ken.jpg>
>>>m_back_1.image
<ImageFileField: uploaded_files/1389904144_ken.jpg>
file
モデル内の元の画像を実際にコピーするにはどうすればよいですか? どんな助けでも大歓迎です!ありがとうございました。