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.

Reply via email to