defer() should accept multiples

Issue #2250 resolved
Mike Bayer repo owner created an issue

doesn't work

from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()
class A(Base):
    __tablename__ = 'a'
    id = Column(Integer, primary_key=True)
    data = Column(String(50))
    x = Column(Integer)
    q = Column(Integer)
    p = Column(Integer)

s = Session()
print s.query(A).options(defer("q", "p"))



  File "test.py", line 15, in <module>
    print s.query(A).options(defer("q", "p"))
  File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/orm/query.py", line 972, in options
    return self._options(False, *args)
  File "<string>", line 1, in <lambda>
  File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/orm/query.py", line 50, in generate
    fn(self, *args[1:](1:), **kw)
  File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/orm/query.py", line 989, in _options
    opt.process_query(self)
  File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/orm/interfaces.py", line 402, in process_query
    self._process(query, True)
  File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/orm/interfaces.py", line 408, in _process
    paths, mappers = self._get_paths(query, raiseerr)
  File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/orm/interfaces.py", line 569, in _get_paths
    (token, entity)
sqlalchemy.exc.ArgumentError: Attribute 'q' of entity 'Mapper|A|a' does not refer to a mapped entity

Comments (2)

  1. Log in to comment