Included and excluded fields

This section is primarily relevant for create, update and patch mutations.

Excluded fields

When the mutation input types are created, all model fields are iterated over, and added to the input object with the corresponding type. Some fields, such as the password field of the standard User model, should in most scenarios be excluded. This can be achieved with the exclude_fields attribute:

class CreateUserMutation(DjangoCreateMutation):
    class Meta:
        model = User
        exclude_fields = ("password",)

Only fields

In some scenarios, if we have a lot of fields excluded, we might want to supply a list of fields that should be included, and let all others be excluded. This can be achieved with the only_fields attribute:

class CreateUserMutation(DjangoCreateMutation):
    class Meta:
        model = User
        only_fields = ("first_name","last_name","address",)

If both only_fields and exclude_fields are supplied, first the fields matching only_fields are extracted, and then the fields matching exclude_fields are removed from this list.