1

アップロードされたファイルを Model で開こうとしていますがclean_fields()

class Person(models.Model):
  attach = models.FileField(upload_to='attach')
  def clean_fields(self, exclude=True):
    f = open(self.attach.path, 'rb')

問題は、 model の前にsave()、 self.attach.path が実際に間違っていることです。upload_toパスがありません。そして、ファイルはまだ存在しません。

self.attach.pathのみが存在し、モデルの後に正しいですsave()

プロセスでアップロードされたファイルのコンテンツを検証するにはどうすればよいclean_fields()ですか? モデルが保存された後のエラーではなく、ValidationError を発生させたい。

4

2 に答える 2

0

わかりました、これに答える方法がなかったので、私はそれを自分で考え出しました.

def clean_fields(self, exclude=None):
    self.SomeFileField.save(self.SomeFileField.name, self.SomeFileField, True)

その後、すべてが整っています。

于 2012-07-13T00:56:24.247 に答える
0

これらの状況では、私はこのようにsthをやっています...

def save(self, *args, **kwargs):
        super(Gallery, self).save(*args, **kwargs)
        gallery = self.process_control()
        super(Gallery, self).delete()
        return gallery
于 2012-07-10T07:28:31.453 に答える