cubicweb/req.py
changeset 12182 50109859da43
parent 12181 29dae4b0332a
child 12183 af5d0a3c3f1a
equal deleted inserted replaced
12181:29dae4b0332a 12182:50109859da43
   222                     '{0}: list of values are not supported'.format(attr))
   222                     '{0}: list of values are not supported'.format(attr))
   223             if hasattr(value, 'eid'):
   223             if hasattr(value, 'eid'):
   224                 kwargs[attr] = value.eid
   224                 kwargs[attr] = value.eid
   225             if attr.startswith('reverse_'):
   225             if attr.startswith('reverse_'):
   226                 attr = attr[8:]
   226                 attr = attr[8:]
   227                 assert attr in eschema.objrels, \
   227                 if attr not in eschema.objrels:
   228                     '{0} not in {1} object relations'.format(attr, eschema)
   228                     raise KeyError('{0} not in {1} object relations'.format(attr, eschema))
   229                 parts.append('{var} {attr} X, {var} eid %(reverse_{attr})s'.format(
   229                 parts.append('{var} {attr} X, {var} eid %(reverse_{attr})s'.format(
   230                     var=next(varmaker), attr=attr))
   230                     var=next(varmaker), attr=attr))
   231             else:
   231             else:
   232                 assert attr in eschema.subjrels, \
   232                 if attr not in eschema.subjrels:
   233                     '{0} not in {1} subject relations'.format(attr, eschema)
   233                     raise KeyError('{0} not in {1} subject relations'.format(attr, eschema))
   234                 parts.append('X {attr} %({attr})s'.format(attr=attr))
   234                 parts.append('X {attr} %({attr})s'.format(attr=attr))
   235 
   235 
   236         rql = ', '.join(parts)
   236         rql = ', '.join(parts)
   237 
   237 
   238         return self.execute(rql, kwargs)
   238         return self.execute(rql, kwargs)