Commit e6785eab by David Robinson

Merge pull request #30 from rbermudezg/RelationalSupport

Add, Remove, and query Relations
parents 870dd6fa 3ace526b
......@@ -367,3 +367,25 @@ class Object(ParseResource):
}
self.__class__.PUT(self._absolute_url, **payload)
self.__dict__[key] += amount
def removeRelation(self, key, className, objectsId):
self.manageRelation('RemoveRelation', key, className, objectsId)
def addRelation(self, key, className, objectsId):
self.manageRelation('AddRelation', key, className, objectsId)
def manageRelation(self, action, key, className, objectsId):
objects = [{
"__type": "Pointer",
"className": className,
"objectId": objectId
} for objectId in objectsId]
payload = {
key: {
"__op": action,
"objects": objects
}
}
self.__class__.PUT(self._absolute_url, **payload)
self.__dict__[key] = ''
\ No newline at end of file
......@@ -77,7 +77,7 @@ class Queryset(object):
__metaclass__ = QuerysetMetaclass
OPERATORS = [
'lt', 'lte', 'gt', 'gte', 'ne', 'in', 'nin', 'exists', 'select', 'dontSelect', 'all'
'lt', 'lte', 'gt', 'gte', 'ne', 'in', 'nin', 'exists', 'select', 'dontSelect', 'all', 'relatedTo'
]
@staticmethod
......@@ -123,7 +123,10 @@ class Queryset(object):
if operator is None:
self._where[attr] = parse_value
else:
self._where[attr]['$' + operator] = parse_value
if operator == 'relatedTo':
self._where['$' + operator] = parse_value
else:
self._where[attr]['$' + operator] = parse_value
return self
def order_by(self, order, descending=False):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment