Has anyone else wanted this...
Suppose you could give a *Col an extra parameter as follows...
class mytable(SQLObject):
    myfield = StringCol(description='human readable description')

This would greatly assist in writing auto-generated admin interfaces for web apps.

It is easily done, in col.py just add description=None, to the args of SOCol.__init__ and self.description = description to the body of that method.
Then find it as mytable.sqlmeta._columnDict['myfield'].description.

What about adding this to the main sources?

Also, when introspecting an SQLObject class, looking at the _joinList is there a standard way of discerning between a MultipleJoin and a RelatedJoin?
The only ways I have thought of are: 1) match against the repr of the join object, which seems too much like a hack, 2) Find the otherClass and see if it has a ForeignKey pointing back, or 3) check for various attributes, there are some that exist for one type and not the other, this seems quite implementation dependant!

Again, I ask with auto-gen'd admin interfaces in mind. The two have to be handled differently, i.e. in a class instance, it makes sense to add to/remove from a RelatedJoin, whereas a MultipleJoin can only be altered by changing another object's ForeignKey!

God bless,