私は最近、djangoを使って実験しています
モデル保存機能で imagemagick を介してアップロードされたファイルを実行できるようにしたいのですが、インスタンスが保存されるまでファイルが利用できないため、これは不可能であることに気付きました
最初に保存が呼び出され、アップロードされたファイルへのアクセスが許可され、他のフィールドにデータが入力されたら再保存されます。
これを達成するためのより良い方法はありますか?保存関数を2回呼び出すのはちょっと気分が悪い
class uploadedFiles(models.Model):
orignal_image = models.FileField(upload_to='userimages/')
user = models.ForeignKey(User)
description = models.TextField(blank=True)
def __unicode__(self,force_insert=False, force_update=False):
return "%s uploaded by %s" % (self.orignal_image.path, self.user)
def save(self, force_insert=False, force_update=False):
super(uploadedFiles, self).save()
s = ''
cmd = subprocess.Popen(['identify', '-verbose', self.orignal_image.path], stdout=subprocess.PIPE)
for line in cmd.stdout:
s += line
self.description = s
super(uploadedFiles, self).save()