diff --git a/orator/orm/model.py b/orator/orm/model.py index 46b53429..167952b8 100644 --- a/orator/orm/model.py +++ b/orator/orm/model.py @@ -107,6 +107,8 @@ class Model(object): _register = ModelRegister() + __attributes__ = {} + many_methods = ['belongs_to_many', 'morph_to_many', 'morphed_by_many'] CREATED_AT = 'created_at' @@ -120,7 +122,9 @@ def __init__(self, _attributes=None, **attributes): self._exists = False self._original = {} - self._attributes = {} + + # Setting default attributes' values + self._attributes = dict((k, v) for k, v in self.__attributes__.items()) self._relations = {} self.sync_original() diff --git a/tests/orm/test_model.py b/tests/orm/test_model.py index 1c40dcb1..528e6268 100644 --- a/tests/orm/test_model.py +++ b/tests/orm/test_model.py @@ -956,6 +956,11 @@ def test_get_foreign_key(self): self.assertEqual('stub_id', model.get_foreign_key()) + def test_default_values(self): + model = OrmModelDefaultAttributes() + + self.assertEqual('bar', model.foo) + class OrmModelStub(Model): @@ -1089,3 +1094,10 @@ class OrmModelCreatedAt(Model): class OrmModelUpdatedAt(Model): __timestamps__ = ['updated_at'] + + +class OrmModelDefaultAttributes(Model): + + __attributes__ = { + 'foo': 'bar' + }