On Wednesday, April 20, 2016 at 3:38:01 PM UTC+2, Mike Bayer wrote:
>
>
> you can put "id" in declared_attr, should work: 
>
> class Model(Base): 
>      @declared_attr 
>      def id(cls): 
>          return Column(Integer, Sequence(cls.__tablename__ + "id_seq"), 
> ...) 
>


Id does not work due to "sqlalchemy.exc.ArgumentError: Column-based 
expression object expected for argument 'remote_side'; got: 
'<sqlalchemy.ext.declarative.api.declared_attr object at 0x7f6b0a6b8870>', 
type <class 'sqlalchemy.ext.declarative.api.declared_attr'>" error. It 
looks like remote_side is not aware of declared_attr. Should it be?


Traceback (most recent call last):
  File 
"/opt/pycharm/pycharm-2016.1.2/helpers/pycharm/pycharm_load_entry_point.py", 
line 12, in <module>
    sys.exit(f())
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/pyramid/scripts/pserve.py",
 
line 60, in main
    return command.run()
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/pyramid/scripts/pserve.py",
 
line 367, in run
    global_conf=vars)
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/pyramid/scripts/pserve.py",
 
line 402, in loadapp
    return loadapp(app_spec, name=name, relative_to=relative_to, **kw)
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/paste/deploy/loadwsgi.py",
 
line 247, in loadapp
    return loadobj(APP, uri, name=name, **kw)
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/paste/deploy/loadwsgi.py",
 
line 272, in loadobj
    return context.create()
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/paste/deploy/loadwsgi.py",
 
line 710, in create
    return self.object_type.invoke(self)
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/paste/deploy/loadwsgi.py",
 
line 203, in invoke
    app = context.app_context.create()
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/paste/deploy/loadwsgi.py",
 
line 710, in create
    return self.object_type.invoke(self)
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/paste/deploy/loadwsgi.py",
 
line 146, in invoke
    return fix_call(context.object, context.global_conf, 
**context.local_conf)
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/paste/deploy/util.py",
 
line 55, in fix_call
    val = callable(*args, **kw)
  File "/home/piotr/projects/kotti/kotti/__init__.py", line 188, in main
    initialize_sql(engine)
  File "/home/piotr/projects/kotti/kotti/resources.py", line 885, in 
initialize_sql
    populate()
  File "/home/piotr/projects/kotti/kotti/populate.py", line 47, in populate
    if DBSession.query(Node.id).count() == 0:
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/sqlalchemy/orm/scoping.py",
 
line 157, in do
    return getattr(self.registry(), name)(*args, **kwargs)
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/sqlalchemy/orm/session.py",
 
line 1260, in query
    return self._query_cls(entities, self, **kwargs)
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/sqlalchemy/orm/query.py",
 
line 110, in __init__
    self._set_entities(entities)
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/sqlalchemy/orm/query.py",
 
line 120, in _set_entities
    self._set_entity_selectables(self._entities)
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/sqlalchemy/orm/query.py",
 
line 137, in _set_entity_selectables
    ext_info.mapper._equivalent_columns
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/sqlalchemy/orm/query.py",
 
line 153, in _mapper_loads_polymorphically_with
    for m2 in mapper._with_polymorphic_mappers or [mapper]:
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/sqlalchemy/util/langhelpers.py",
 
line 754, in __get__
    obj.__dict__[self.__name__] = result = self.fget(obj)
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/sqlalchemy/orm/mapper.py",
 
line 1893, in _with_polymorphic_mappers
    configure_mappers()
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/sqlalchemy/orm/mapper.py",
 
line 2768, in configure_mappers
    mapper._post_configure_properties()
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/sqlalchemy/orm/mapper.py",
 
line 1710, in _post_configure_properties
    prop.init()
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/sqlalchemy/orm/interfaces.py",
 
line 183, in init
    self.do_init()
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/sqlalchemy/orm/relationships.py",
 
line 1628, in do_init
    self._process_dependent_arguments()
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/sqlalchemy/orm/relationships.py",
 
line 1683, in _process_dependent_arguments
    util.to_column_set(self.remote_side))
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/sqlalchemy/orm/relationships.py",
 
line 1682, in <genexpr>
    for x in
  File 
"/home/piotr/.virtualenvs/kotti/lib/python2.7/site-packages/sqlalchemy/sql/elements.py",
 
line 3820, in _only_column_elements
    "'%s'; got: '%s', type %s" % (name, element, type(element)))
sqlalchemy.exc.ArgumentError: Column-based expression object expected for 
argument 'remote_side'; got: '<sqlalchemy.ext.declarative.api.declared_attr 
object at 0x7f6b0a6b8870>', type <class 
'sqlalchemy.ext.declarative.api.declared_attr'>


Regards,
Piotr  Dobrogost

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to