On Aug 13, 2010, at 8:19 AM, robert rottermann wrote: > hi there, > up to now I did use something like: > > c = tblCompany.__table__.columns > COMPANY_FIELDS = [(k, c[k].type.get_col_spec()) for k in c.keys() if not > k=='id'] > > to build some dynamic forms for a web application. > > now this breaks with an error: > AttributeError: 'VARCHAR' object has no attribute 'get_col_spec' > > it seems to work still with MySQL but not with postgres. (maybe MySQL uses a > slightly older version out of the 6.xx serie) > > what is the "correct" way to build a list of fields a table provides ?
get_col_spec() was removed in 0.6 and replaced with the compiler structure. the string form of a type is available if you compile it against a dialect, like type.compile(dialect=engine.dialect). its not a great idea to rely upon the string form of a type for anything other than issuing SQL since it changes based on dialect involved and arguments. if you're needing a hash key or some kind of discriminator, use the type object or its class by itself. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalch...@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.