Djangoで dictionary形式のデータでDBデータを更新する方法

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

コメントを残す

メールアドレスが公開されることはありません。