0
ファイルのフルパスなしでファイル名も保存する必要があります。間違ったファイル名example.jpgを保存し、既存の名前のファイルがすでに存在する場合、およびoffcourseディスクに書き込みファイルexample_1.jpg、example_2.jpgが、ファイル名に例をアップロードしたファイルのファイル名をモデルに保存する方法
class Photo(models.Model):
photo = models.ImageField(upload_to = settings.PATH_PHOTOS_SOURCE)
user = models.ForeignKey(UserProfile, editable=False)
item = models.ForeignKey(Item, default=0)
filename = models.CharField(max_length=100, default='', editable=False)
def save(self, *args, **kwargs):
self.filename = os.path.basename(self.photo.url)
super(Photo, self).save(*args, **kwargs)
それが仕事ですが、存在します。 は、私はそうすること
は、私は私の保存方法に変更:def save(self, *args, **kwargs):
super(Photo, self).save(*args, **kwargs)
self.filename = os.path.basename(self.photo.url)
super(Photo, self).save()
それが仕事だが、しかし、私はこのコードを好きではない、多分よりエレガントなコードです。
信号でこれを実行しようとしましたが、再帰の保存に問題がありました。
ありがとうございました。いい案。 – yAnTar