Djangoで dictionary形式のデータでDBデータを更新する方法をご紹介します。
条件
- Django 2.1.7
- Python 3.7.0
実装方法
「__dict__.update()」を使用します。
実装例1
poll = Poll.objects.get(pk=1) poll.__dict__.update(dictData) poll.save()
実装例2:UpdateViewの場合
UpdateViewにおいて、Formの値で更新を行う場合は以下のようになります。
# views.py抜粋 class UpdateView(generic.UpdateView): # 更新画面 model = Poll template_name = 'polls/update_form.html' form_class = PollForm def form_valid(self, form): # Pollを更新する。 self.object.__dict__.update(form.cleaned_data) self.object.save()
参考
stackoverflow
https://stackoverflow.com/questions/2696797/how-to-save-django-object-using-dictionary