8
def generate_uuid_file_name(self, filename):
    self.original_filename = filename
    extension = filename.rsplit('.', 1)[1]
    newfilename = uuid.uuid4().__str__() + '.' + extension
    return self.directory() + newfilename

class FileUpload(models.Model):
    original_filename  = models.CharField(max_length=128)
    fileobj            = models.FileField(upload_to=generate_uuid_file_name)

アップロード時、

{"errors": {"original_filename": ["This field is required."]}, "success": false}

blank=True, null=True を FileUpload.original_filename に追加すると、アップロードは成功しますが、元のファイル名は保存されません。Django 1.5 で。この投稿によると、これはうまくいくはずです。

4

1 に答える 1

8

ビューでそれを行います(null = Trueの後、blank = Trueが再びモデルの一部になります):

file_object = UploadFileForm.save(commit=False)
file_object.original_filename = request.FILES['file'].name
file_object.save()

コンテキストなどに応じて上記のコードを変更する必要があることに注意してください

于 2013-06-28T01:39:29.933 に答える