Creates a new object pretreated input data.

        .. code-block:: python

            DBSession.sacrud(Users).create({'name': 'Vasya', 'sex': 1})

        Support JSON:

        .. code-block:: python

            DBSession.sacrud(Users).create('{"name": "Vasya", "sex": 1}')

        For adding multiple data for m2m or m2o use endinng `[]`, ex.:

        .. code-block:: python

            DBSession.sacrud(Users).create(
                {'name': 'Vasya', 'sex': 1,
                 'groups[]': ['["id", 1]', '["id", 2]']}
            )

def create(self, data, update=False, **kwargs):
        """
        Creates a new object pretreated input data.

        .. code-block:: python

            DBSession.sacrud(Users).create({'name': 'Vasya', 'sex': 1})

        Support JSON:

        .. code-block:: python

            DBSession.sacrud(Users).create('{"name": "Vasya", "sex": 1}')

        For adding multiple data for m2m or m2o use endinng `[]`, ex.:

        .. code-block:: python

            DBSession.sacrud(Users).create(
                {'name': 'Vasya', 'sex': 1,
                 'groups[]': ['["id", 1]', '["id", 2]']}
            )
        """
        data = unjson(data)

        if update is True:
            obj = get_obj_by_request_data(self.session, self.table, data)
        else:
            obj = None
        return self._add(obj, data, **kwargs)