在django Model clean_fields()中读取上传的文件内容?

时间:2012-07-10 07:09:48

标签: python django model-view-controller

我正在尝试在模型clean_fields()中打开上传的文件,

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

问题是,在模型save()之前,self.attach.path实际上是错误的。缺少upload_to路径。并且该文件尚不存在。

模型self.attach.path

之后save()仅存在并且正确

如何在clean_fields()进程中验证上传文件的内容?我想提出ValidationError,而不是在保存模型后出错。

2 个答案:

答案 0 :(得分:0)

在这些情况下,我正在做这样......

def save(self, *args, **kwargs):
        super(Gallery, self).save(*args, **kwargs)
        gallery = self.process_control()
        super(Gallery, self).delete()
        return gallery

答案 1 :(得分:0)

好吧,既然无法回答这个问题,我自己也明白了。

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

然后一切都已到位。