def __init__(self, **kwargs):
super(Model, self).__init__()<EOL>self.__dict__.update(self._defaults)<EOL>for name, value in iteritems(kwargs):<EOL><INDENT>field = self.get_field(name)<EOL>if field:<EOL><INDENT>setattr(self, name, value)<EOL><DEDENT>else:<EOL><INDENT>raise AttributeError('<STR_LIT>' % (self.__class__.__name__, name))<EOL><DEDENT><DEDENT>
Creates a model instance, using keyword arguments as field values.
Since values are immediately converted to their Pythonic type,
invalid values will cause a `ValueError` to be raised.
Unrecognized field names will cause an `AttributeError`.