KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Imagine a model Shirts with a size CharField, with values limited to a small number of choices, e.g. 'small', 'medium', 'large', 'xlarge' etc. To get the shirts grouped by size, you'd do: Shirts.objects.order_by('size') But Django will (naturally) order the groups alphabetically, i.e. 'large' then 'medium' then 'small' then 'xlarge'. What I want is to have 'small' before 'medium' before 'large' etc. I.e. what I naturally want to do is something like the following pseudocode: size_order = {'small': 1, 'medium': 2, 'large': 3, 'xlarge': 4} Shirts.objects.order_by('size_order[size]') What's the best way to accomplish this? EDIT: See my comments to answers below for thoughts on various suggested approaches. I've stumbled on a custom Manager/QuerySet approach using the SQL ORDER BY CASE syntax which I'm investigating.
Tags (comma-separated)
Save Edits
Cancel