前提・実現したいこと
Djangoを使用し、画面の値を更新&ファイルアップロードを行いたいです。
ModelFormを使用したDB更新とis_validを使用したアップロードはできましたが
DBの更新ができない原因がわかっていません。
発生している問題
画面の値がDBに更新ができない。
ソース
views.py
def update(request): obj = Sponser_Data.objects.get(Field1=1) if request.method == 'POST': form = UpdateForm(request.POST,request.FILES,instance=obj) if form.is_valid(): form.save() return redirect('update') else: form = UpdateForm(instance=obj) params = { 'form':form, } return render(request,'Update.html',params
forms.py
class UpdateForm(forms.ModelForm): class Meta: model = Sponser_Data fields = ['Field1','Field2','Field3','Field4'] file = forms.FileField( label='ファイル', help_text='xlsxのデータファイルをアップロードして下さい', validators=[FileExtensionValidator(['xlsx'])] ) def save(self): upload_file = self.cleaned_data['file'] file_name = default_storage.save(upload_file.name, upload_file) return file_name
上記ソースだとファイルアップロードはできますが、DBの更新ができません。
UpdateFormの
file = forms.FileField・・・
と
saveメソッドを削除するとDB更新はできるので、
ここに問題がありそうですが、解決方法がわかっていません。
ご教授頂けると助かります。
環境
Python:Python 3.7.3
Django:3.0.5
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。