diff --git a/database/__init__.py b/database/__init__.py new file mode 100644 index 0000000..06d7405 Binary files /dev/null and b/database/__init__.py differ diff --git a/database/fields.py b/database/fields.py new file mode 100644 index 0000000..3dd7a21 --- /dev/null +++ b/database/fields.py @@ -0,0 +1,12 @@ +import re +from mongoengine import StringField + + +class RegexField(StringField): + def __init__(self, regex, *args, **kwargs): + super().__init__(*args, **kwargs) + self.regex = re.compile(regex) + + def validate(self, value, clean=True): + if not self.regex.fullmatch(value): + self.error('The given string does not match the regex for this field')