MongoEngine / marshmallow-mongoengine

Mongoengine integration with marshmallow
MIT License
78 stars 34 forks source link

Add support for EnumField #20

Open mk-dinamicka opened 2 years ago

mk-dinamicka commented 2 years ago

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.

sponsfreixes commented 1 year ago

@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.