@@ -111,9 +111,12 @@ def perform_mutate(cls, form, info):
111
111
class DjangoModelDjangoFormMutationOptions (DjangoFormMutationOptions ):
112
112
model = None
113
113
return_field_name = None
114
+ input_field_name = None
114
115
115
116
116
117
class DjangoModelFormMutation (BaseDjangoFormMutation ):
118
+ _DEFAULT_INPUT_FIELD_NAME = "input"
119
+
117
120
class Meta :
118
121
abstract = True
119
122
@@ -127,6 +130,7 @@ def __init_subclass_with_meta__(
127
130
return_field_name = None ,
128
131
only_fields = (),
129
132
exclude_fields = (),
133
+ input_field_name = _DEFAULT_INPUT_FIELD_NAME ,
130
134
** options
131
135
):
132
136
@@ -166,6 +170,17 @@ def __init_subclass_with_meta__(
166
170
super (DjangoModelFormMutation , cls ).__init_subclass_with_meta__ (
167
171
_meta = _meta , input_fields = input_fields , ** options
168
172
)
173
+ cls .input_field_name = input_field_name
174
+ if cls .input_field_name != cls ._DEFAULT_INPUT_FIELD_NAME :
175
+ cls ._meta .arguments [cls .input_field_name ] = cls ._meta .arguments .pop (
176
+ cls ._DEFAULT_INPUT_FIELD_NAME
177
+ )
178
+
179
+ @classmethod
180
+ def mutate (cls , root , info , ** kwargs ):
181
+ if cls .input_field_name != cls ._DEFAULT_INPUT_FIELD_NAME :
182
+ kwargs [cls ._DEFAULT_INPUT_FIELD_NAME ] = kwargs .pop (cls .input_field_name )
183
+ return super (DjangoModelFormMutation , cls ).mutate (root , info , ** kwargs )
169
184
170
185
@classmethod
171
186
def mutate_and_get_payload (cls , root , info , ** input ):
0 commit comments