Please open an issue in google code

---------- Forwarded message ----------
From: villas <villa...@gmail.com>
Date: May 6, 10:56 am
Subject: CRUD.search sorting order
To: web2py-users


Hi Niknok

I have looked at this in a little more detail now.  The main problem
seems to be that web2py does not accept the orderby argument for
crud.search.

** I believe this is a bug **

I think it should be possible to fix this easily enough in tools.py
but it is best if someone with more experience confirms this issue.

Best regards,  D

On May 6, 2:00 pm, niknok <nikolai...@gmail.com> wrote:







> Thanks for the response Villas.

> Do note that my use of
>    fields=['id','last_name','first_name', ...
> is based on examples in the book . I tried your suggestions, sadly,
> I'm getting a KeyError error message. W2P complaining about the
> "db.auth_user" table names... Have you tried this out yourself and is
> it working in your system?

> As for orderby, the use of built-in python functions (i.e.
> orderby=db.auth_user.last_name.lower() ...) are documented in the
> book.

> So I suppose the issue is something else?

> /r

> On May 4, 11:45 pm, villas <villa...@gmail.com> wrote:

> > I should have also said that I think the fields should be fields and
> > not strings:
> > i.e.
> > fields = [db.auth_user.id, db.auth_user.last_name, ....]

> > On May 4, 2:47 pm, niknok <nikolai...@gmail.com> wrote:

> > > I'm using v1.94.6 and retrieving ordered search results from crud.search
> > > always produces a list sorted by id

> > > Tried various combinations:

> > >     orderby=db.auth_user.last_name
> > >     orderby=db.auth_user.birth_date
> > >     orderby=db.auth_user.last_name.lower()|db.auth_user.first_name.lower()

> > > Attached is a screenshot with orderby set to last entry above.

> > > The code I use is:

> > > form,rows = crud.search(db.auth_user
> > >     ,query=(db.auth_user.account_type==0)&(db.auth_user.id!=auth.user.id)
> > >     ,fields=['id','last_name','first_name','middle_name','birth_date']
> > >     
> > > ,orderby=db.auth_user.last_name.lower()|db.auth_user.first_name.lower()
> > >     ,queries=['equals','contains','starts with','ends with','greater 
> > > than','less than'])

> > > Did I miss anything or doing something wrong here?

> > > /r
> > > Nik

> > >  crud.search-sorting.png
> > > 103KViewDownload

Reply via email to