From be9cffab993c7be43cc15c50b063be0494f86ede Mon Sep 17 00:00:00 2001 From: ncrypt4nix Date: Tue, 29 Dec 2020 15:03:11 +0300 Subject: [PATCH] return back instance fields so as not to overwrite not required fields on None --- graphene_django/forms/mutation.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/graphene_django/forms/mutation.py b/graphene_django/forms/mutation.py index cc7d647..6fef25c 100644 --- a/graphene_django/forms/mutation.py +++ b/graphene_django/forms/mutation.py @@ -186,6 +186,18 @@ class DjangoModelFormMutation(BaseDjangoFormMutation): kwargs = {cls._meta.return_field_name: obj} return cls(errors=[], **kwargs) + @classmethod + def get_form_kwargs(cls, root, info, **input): + kwargs = super().get_form_kwargs(root, info, **input) + instance = kwargs.get('instance') + if not instance: + return kwargs + + for field in kwargs.get('instance')._meta.fields: + if field.name not in kwargs['data'] and field.name != 'id': + kwargs['data'][field.name] = getattr(instance, field.name) + return kwargs + def _set_errors_flag_to_context(info): # This is not ideal but necessary to keep the response errors empty