0

ファイルのアップロードに Ajax コードを使用しています。Django は、ModelForms でのファイルのアップロードを適切に処理します。form.save() を記述するだけで、ヘッダーにファイル データがアップロードされ、必要に応じてフォルダーの作成が管理され、重複が既に存在する場合はファイルの名前が変更されます。たとえば、ファイル名付きのファイルが 1 つしかないこの ModelForm を例にとります。

class UploadFileForm(ModelForm):
    class Meta:
        model = MyModel
        fields = ('file',)

私は Ajax を使用しているので、ビューにある唯一の情報は request.FILES['file'] です。これは私が私の見解で試したことです:

 form = UploadFileForm(initial={'file':request.FILES['file']})
 if form.is_valid():
     form.save()

しかし、無効なフォームを返します (ファイルが必要です)。純粋な Python を使用してこれを行うことができますが、Django の機能を使用すると、そのポイントはどこにあるのでしょうか?

4

1 に答える 1

0
form = UploadFileForm(request.FILES)
if form.is_valid():
    form.save()

初期パラメータを使用すると、新しいフォームに初期データを入力するなど、フォーム フィールドを初期化できます。

ここでは、リクエストからファイル データを取得しています。

于 2010-09-18T08:45:12.253 に答える