From 26c4924e3ade60fe6288e31a099f5b6c606dccb5 Mon Sep 17 00:00:00 2001 From: Eero Ruohola Date: Mon, 5 Apr 2021 16:49:44 +0300 Subject: [PATCH] Fix broken form.save() call in DjangoFormMutation.perform_mutate Django's plain (non-model) forms don't have the `save` method, so calling this would just result in an `AttributeError` before this change. Resolves #1152 --- graphene_django/forms/mutation.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/graphene_django/forms/mutation.py b/graphene_django/forms/mutation.py index e56c99c..5a3d8e7 100644 --- a/graphene_django/forms/mutation.py +++ b/graphene_django/forms/mutation.py @@ -101,7 +101,10 @@ class DjangoFormMutation(BaseDjangoFormMutation): @classmethod def perform_mutate(cls, form, info): - form.save() + if hasattr(form, "save"): + # `save` method won't exist on plain Django forms, but this mutation can + # in theory be used with `ModelForm`s as well and we do want to save them. + form.save() return cls(errors=[], **form.cleaned_data)