entity.py
branch3.5
changeset 3136 ed303cf3a048
parent 3050 f4c1994a749d
parent 3130 2486163c4630
child 3163 edfe43ceaa35
child 3316 c4c07aab1c39
--- a/entity.py	Wed Sep 09 14:38:50 2009 +0200
+++ b/entity.py	Wed Sep 09 15:07:58 2009 +0200
@@ -682,14 +682,16 @@
         self.set_related_cache(rtype, role, rset)
         return self.related(rtype, role, limit, entities)
 
-    def related_rql(self, rtype, role='subject'):
+    def related_rql(self, rtype, role='subject', targettypes=None):
         rschema = self.schema[rtype]
         if role == 'subject':
-            targettypes = rschema.objects(self.e_schema)
+            if targettypes is None:
+                targettypes = rschema.objects(self.e_schema)
             restriction = 'E eid %%(x)s, E %s X' % rtype
             card = greater_card(rschema, (self.e_schema,), targettypes, 0)
         else:
-            targettypes = rschema.subjects(self.e_schema)
+            if targettypes is None:
+                targettypes = rschema.subjects(self.e_schema)
             restriction = 'E eid %%(x)s, X %s E' % rtype
             card = greater_card(rschema, targettypes, (self.e_schema,), 1)
         if len(targettypes) > 1: