ファイルのアップロードに 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 の機能を使用すると、そのポイントはどこにあるのでしょうか?