2017-12-27 37 views
0

次の投稿を使ってDjangoのファイルをアップロードしています:https://simpleisbetterthancomplex.com/tutorial/2016/08/01/how-to-upload-files-with-django.htmlDjangoのupload_toパラメータにパラメータを渡すファイルアップロード

この記事では、upload_toパラメータが文字列を返す呼び出し可能なものである可能性があることを説明しています。提供された例では、次のように呼び出し可能な2つのパラメータ、インスタンスおよびファイル名を受け付けます。

def user_directory_path(instance, filename): 
    # file will be uploaded to MEDIA_ROOT/user_<id>/<filename> 
    return 'user_{0}/{1}'.format(instance.user.id, filename) 

class MyModel(models.Model): 
    upload = models.FileField(upload_to=user_directory_path) 

どの時点で、どのように私はパラメータがupload_toに渡すのですか?私は form.save(コミット=真)

を使用して、データベースにフォーム値を保持します。どんな助けもありがとう。ありがとう。

答えて

0

パラメータを明示的に指定する必要はありません。モデル宣言では、 'upload_to'は関数呼び出しの際に自動的にパラメータを受け取る関数の参照です。ここで 'インスタンス'はオブジェクトのデータベース行で、 'filename'はdjangoモデルによって生成されます。