marshmallow-mongoengine icon indicating copy to clipboard operation
marshmallow-mongoengine copied to clipboard

Add support for EnumField

Open mk-dinamicka opened this issue 2 years ago • 1 comments

Currently there is no support for EnumField that is mentioned in MongoEngine docs.

For now attempting to use this field like this raises an exception:

import mongoengine
from enum import Enum
from marshmallow_mongoengine import ModelSchema

class NotificationStyle(Enum):
    SUCCESS = "success"
    FAILURE = "failure"


class Notification(mongoengine.Document):
    style = mongoengine.EnumField(NotificationStyle, default=NotificationStyle.SUCCESS)

class NotificationListSchema(ModelSchema):
    class Meta:
        model = Notification
        model_skip_values = ()

marshmallow_mongoengine.exceptions.ModelConversionError: Could not find field of type <mongoengine.fields.EnumField object at 0x7fc05c3a3e80>.

Please add support for it.

mk-dinamicka avatar Oct 18 '22 17:10 mk-dinamicka

@mk-dinamicka I was hoping to find time to tackle this, but it's proving difficult (not the fix, but finding time). Feel free to submit a PR with the fix for review, it will probably be quicker.

sponsfreixes avatar Nov 12 '22 23:11 sponsfreixes