On Wednesday, December 15, 2010 1:34:15 PM UTC, josch wrote:
>
> Hallo, 
>
> I know, that the normal way to do that is to write the return value of 
> the method to the foreign model, always when a model that affects the 
> return value changes, and than order by that value of the model. 
>
> But I have a model whoose objects gets a specific state after they are 
> older than a specific number of days. And i don`t want to use a 
> cronjob or something like that to update the foreign model`s value. 
>
> So, can someone tell me, how I can order a query set by one of the 
> function of it`s models, in a pinch by reordering the obecjts in a new 
> object array or some kind like that. 
>
> There are not a lot of records I have to order, so I think there is no 
> performance problem for my kind of application. 
>
> Thank you!


You can convert the queryset to a list, then call the standard list sort 
method on it, passing the method as the key:

    results = MyModel.objects.filter(criteria=whatever)
    results = list(results)
    results.sort(key=lambda x: x.my_method())

Obviously, as you note, this is not as efficient as doing the sorting in the 
database, but for small numbers of objects it should be acceptable.
--
DR.
 

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to