0

Djangoのドキュメントに従って、Djangoにファイルをアップロードしようとしています。

def handle_uploaded_file(f):
    with open('some/file/name.txt', 'wb+') as destination:
        for chunk in f.chunks():
            destination.write(chunk)

しかし、アップロードすると name.txt ファイルが上書きされます。そのフォルダ内で一意の名前であることを確認するにはどうすればよいですか? (name(1).txt として保存される場合があります)

PS: File フィールドでモデルを保存するとき、Django はそれを処理します。ただし、フォームを使用しているため、手動で処理する必要があります。

ありがとう

4

1 に答える 1

0

uuid ライブラリを使用すると、一意の ID を取得できます

import uuid

def handle_uploaded_file(f):

    name = 'some/file/%s.txt' % uuid.uuid1()

    with open(name, 'wb+') as destination:
       for chunk in f.chunks():
            destination.write(chunk)

http://docs.python.org/2/library/uuid.html

于 2013-11-12T17:59:34.877 に答える