Skip to content

Instantly share code, notes, and snippets.

@dominusmi
Created November 7, 2022 15:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dominusmi/e616e517e17fe750d9b1595bfe62678b to your computer and use it in GitHub Desktop.
Save dominusmi/e616e517e17fe750d9b1595bfe62678b to your computer and use it in GitHub Desktop.
Peewee EnumField (custom field type based on IntegerField)
import enum
from abc import ABC
from peewee import IntegerField
class EnumField(IntegerField, ABC):
"""
This class enable an Enum like field for Peewee
"""
def __init__(self, enum: Type[enum.Enum], *args, **kwargs):
super(IntegerField, self).__init__(*args, **kwargs)
self.enum = enum
def db_value(self, value):
return value.value
def python_value(self, value):
return self.enum(value)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment