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 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 回答
0

好的,由于无法回答这个问题,我自己想通了。

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

然后一切就绪。

于 2012-07-13T00:56:24.247 回答