schematics icon indicating copy to clipboard operation
schematics copied to clipboard

[Feature] Models collection support

Open wonderbeyond opened this issue 8 years ago • 1 comments

Imagine we can code like below:

from schematics.models import Model, ModelCollection
from schematics.types import StringType
from schematics.transforms import blacklist


class User(Model):
    name = StringType()
    password = StringType()

    class Options:
        roles = {
            'public': blacklist('password'),
        }


users = ModelCollection([{'name': 'Wonder'}, {'name': 'Jim'}], type=User)
# Or without the visibility of ModelCollection class:
# users = User.many([{'name': 'Wonder'}, {'name': 'Jim'}])

users.add(User({'name': 'Jake'}))
users.add({'name': 'Smile'})

# Optional APIs:
wonder = users.get(name='Wonder')
users.remove(name='Jim')

users.validate()

users.to_primitive(role='public')

wonderbeyond avatar Nov 22 '17 03:11 wonderbeyond

+1

dsully avatar Mar 14 '18 15:03 dsully