LINUX.ORG.RU

История изменений

Исправление fMad, (текущая версия) :

дак, дочитай

вроде просто всё

class Media(models.Model):
    # use the custom storage class fo the FileField
    orig_file = models.FileField(
        upload_to=media_file_name, )
    md5sum = models.CharField(max_length=36)
    ...
# переопределяешь сохранение, в котором и подсчитываешь md5
    def save(self, *args, **kwargs):
            if not self.pk:  # file is new
                md5 = hashlib.md5()
                for chunk in self.orig_file.chunks():
                    md5.update(chunk)
                self.md5sum = md5.hexdigest()
            super(Media, self).save(*args, **kwargs)

Исходная версия fMad, :

дак, дочитай

вроде просто всё

class Media(models.Model):
    # use the custom storage class fo the FileField
    orig_file = models.FileField(
        upload_to=media_file_name,    storage=MediaFileSystemStorage())
    md5sum = models.CharField(max_length=36)
    ...
# переопределяешь сохранение, в котором и подсчитываешь md5
    def save(self, *args, **kwargs):
            if not self.pk:  # file is new
                md5 = hashlib.md5()
                for chunk in self.orig_file.chunks():
                    md5.update(chunk)
                self.md5sum = md5.hexdigest()
            super(Media, self).save(*args, **kwargs)