2012-07-10 66 views
1

我想在型號clean_fields()打開上傳的文件,在django中讀取上傳的文件內容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') 

的問題是,該模型save()之前,self.attach.path其實是不對的。 upload_to路徑丟失。而該文件不存在,但。

self.attach.path只存在並且是正確的後模型的save()

如何驗證在clean_fields()過程上傳文件的內容?我想提出ValidationError,而不是模型保存後的錯誤。

在這些情況下

回答

0

沒關係,因爲沒有辦法能夠回答這個問題,我figuered它自己。

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

然後一切都到位了。

0

,我做某事這樣的...

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

確定,但我真的想拋出ValidationError,因此在管理員或shell中可能發現其文件內容錯誤。在'save()'中沒有辦法做到這一點 – est 2012-07-11 00:39:52