OK let's make it take both into account....
print [c.key for c in sorted(inspect(Venue).column_attrs, key=lambda col: col.columns[0]._creation_order)]
On 05/09/2016 12:41 PM, Denis Rykov wrote:
It not returning expected result: >>> [c.key for c in sorted(inspect(Venue).columns, key=lambda col: col._creation_order)] ['id', 'name', 'address'] I want to get ['id', 'name', 'address_']. On Mon, May 9, 2016 at 9:01 PM, Mike Bayer <mike...@zzzcomputing.com <mailto:mike...@zzzcomputing.com>> wrote: ideally declarative would try to preserve this ordering for straight columns, for now you can do it like this: [c.key for c in sorted(inspect(Venue).columns, key=lambda col: col._creation_order)] On 05/09/2016 09:50 AM, Denis Rykov wrote: Thanks for quick response. I've tried your approach: Venue.__table__.columns.keys() ['id', 'name', 'address'] But how I can get class attributes in the same order as real table columns? On Mon, May 9, 2016 at 8:31 PM, Mike Bayer <mike...@zzzcomputing.com <mailto:mike...@zzzcomputing.com> <mailto:mike...@zzzcomputing.com <mailto:mike...@zzzcomputing.com>>> wrote: not a bad question. Those attributes are the mapper-assigned attributes and I'd guess that because address_ has an alternate name, declarative is setting it up in a different step. The attributes on a class can't be ordered in any case. To get the real order of columns at the Core level use the table: Venue.__table__.columns.keys() On 05/09/2016 08:11 AM, Denis Rykov wrote: Hello. Why "address_" key on first place of list, is it expected behaviour? | >>> from sqlalchemy.ext.declarative import declarative_base >>> from sqlalchemy.inspection import inspect >>> from sqlalchemy import Integer, Column, Unicode >>> >>> Base = declarative_base() >>> >>> >>> class Venue(Base): ... __tablename__ = 'venue' ... id = Column(Integer, primary_key=True) ... name = Column(Unicode, nullable=False) ... address_ = Column('address', Unicode, nullable=False) ... >>> inspect(Venue).columns.keys() ['address_', 'id', 'name'] | -- 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 <mailto:sqlalchemy%2bunsubscr...@googlegroups.com> <mailto:sqlalchemy%2bunsubscr...@googlegroups.com <mailto:sqlalchemy%252bunsubscr...@googlegroups.com>> <mailto:sqlalchemy+unsubscr...@googlegroups.com <mailto:sqlalchemy%2bunsubscr...@googlegroups.com> <mailto:sqlalchemy%2bunsubscr...@googlegroups.com <mailto:sqlalchemy%252bunsubscr...@googlegroups.com>>>. To post to this group, send email to sqlalchemy@googlegroups.com <mailto:sqlalchemy@googlegroups.com> <mailto:sqlalchemy@googlegroups.com <mailto:sqlalchemy@googlegroups.com>> <mailto:sqlalchemy@googlegroups.com <mailto:sqlalchemy@googlegroups.com> <mailto:sqlalchemy@googlegroups.com <mailto:sqlalchemy@googlegroups.com>>>. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to a topic in the Google Groups "sqlalchemy" group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/sqlalchemy/k0MrlMBvAls/unsubscribe. To unsubscribe from this group and all its topics, send an email to sqlalchemy+unsubscr...@googlegroups.com <mailto:sqlalchemy%2bunsubscr...@googlegroups.com> <mailto:sqlalchemy%2bunsubscr...@googlegroups.com <mailto:sqlalchemy%252bunsubscr...@googlegroups.com>>. To post to this group, send email to sqlalchemy@googlegroups.com <mailto:sqlalchemy@googlegroups.com> <mailto:sqlalchemy@googlegroups.com <mailto:sqlalchemy@googlegroups.com>>. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout. -- 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 <mailto:sqlalchemy%2bunsubscr...@googlegroups.com> <mailto:sqlalchemy+unsubscr...@googlegroups.com <mailto:sqlalchemy%2bunsubscr...@googlegroups.com>>. To post to this group, send email to sqlalchemy@googlegroups.com <mailto:sqlalchemy@googlegroups.com> <mailto:sqlalchemy@googlegroups.com <mailto:sqlalchemy@googlegroups.com>>. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to a topic in the Google Groups "sqlalchemy" group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/sqlalchemy/k0MrlMBvAls/unsubscribe. To unsubscribe from this group and all its topics, send an email to sqlalchemy+unsubscr...@googlegroups.com <mailto:sqlalchemy%2bunsubscr...@googlegroups.com>. To post to this group, send email to sqlalchemy@googlegroups.com <mailto:sqlalchemy@googlegroups.com>. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout. -- 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 <mailto:sqlalchemy+unsubscr...@googlegroups.com>. To post to this group, send email to sqlalchemy@googlegroups.com <mailto:sqlalchemy@googlegroups.com>. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.
-- 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.