Thanks, I could modify the model. But I did find a solution.

Solution: I modified the model a little and added the "doc" attribute to 
the column and set a numerical number, by default "50" and then set date to 
be "80".


cols = Client.__table__.columns
sortedCols = sorted(cols, key=getDoc)


def getDoc(col_obj):
    return col_obj.doc



This seems to work really well. I now can also allow users to change column 
order in my app and save their settings as well.

Thanks,
Charlie

On Monday, October 10, 2016 at 7:25:04 PM UTC-7, Mike Bayer wrote:
>
>
>
> On 10/10/2016 01:44 PM, Charles Heizer wrote: 
> > Hello, 
> > I'm not sure if I'm asking this correctly. I'm fairly new to using 
> > SQLAlchemy so I'm sorry if I'm not using the correct terminology. 
> > 
> > How do I change the returning column order on a query? Is there an easy 
> > way? I would like to make 'mdate' be the last column. 
> > 
> > Thanks! 
> > 
> > Example: 
> > 
> > *Model* 
> > | 
> > classClient(CommonBase): 
> >     __tablename__ ='clients' 
> > 
> >     id              =Column(BigInteger,primary_key=True) 
> >     cid 
> > =Column(String(50),nullable=False,index=True,unique=True,info='Client 
> ID') 
> >     mdate           =Column(DateTime,server_default='1970-01-01 
> > 00:00:00',info='Mod Date') 
> >     serialno        =Column(String(100),server_default='NA',info='Serial 
> > No') 
> >     hostname 
> >  =Column(String(255),server_default='NA',index=True,info='Host Name') 
> >     ipaddr 
> >  =Column(String(64),server_default='NA',index=True,info='IP Address') 
> >     macaddr         =Column(String(64),server_default='NA',info='MAC 
> > Address') 
> > | 
> > 
> > 
> > *Query* 
> > | 
> > clients =Client.query.all() 
>
> so when you query that way, you take all the Column objects you've set 
> up for Client, throw them into a SELECT, and the results get sent back 
> into Client objects.  It's odd that you would ask for an "order" in that 
> context; the SQL would render a certain way, but that in no way changes 
> the results you get back; no matter what the order in the SELECT 
> statement is, you get Client objects back with no defined ordering of 
> their attributes. 
>
> To get back tuples with a specific ordering, break it out like this: 
>
> rows = session.query(Client.id, Client.serialno, Client.mdate) 
>
> you get back tuples instead that are ordered in terms of their 
> attributes.  Maybe that's what you're asking. 
>
> Otherwise, if you really just want Client objects and the SELECT happens 
> to put "mdate" last, then make "mdate" the last Column that you 
> construct when you build up Client: 
>
> class Client(...): 
>      __tablename__ = '...' 
>
>      id = Column(...) 
>
>      ... 
>
>      mdate = Column(...) 
>
> but I can't imagine a scenario in which that makes any difference. 
>
>
>
>
>
> > | 
> > 
> > 
> > -- 
> > 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+...@googlegroups.com <javascript:> 
> > <mailto:sqlalchemy+unsubscr...@googlegroups.com <javascript:>>. 
> > To post to this group, send email to sqlal...@googlegroups.com 
> <javascript:> 
> > <mailto:sqlal...@googlegroups.com <javascript:>>. 
> > 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.

Reply via email to