python - Change Django alphabetical ordering to custom ordering -


i've created model reservation , code(models.py) looks this:

#choices status_choices = ( ('approved','approved'),('pending', 'pending'), ('canceled', 'canceled') )  # reservation model class reservation(models.model):      class meta:         ordering = ['-status']      status = models.charfield(choices=status_choices, default='pending', max_length=25) 

i want order reservations this:

  1. pending
  2. approved
  3. canceled

but current order is:

  1. pending
  2. canceled
  3. approved

it looks django ordering objects alphabetically.

how can change alphabetical order 1 described above?

thanks!

you change status integerfield, , define constants 3 states. sorting 'status' should want.

pending = 1 approved = 2 canceled = 3  status_choices = (approved,'approved'),(pending, 'pending'), (canceled, 'canceled)) 

or create statuschoice model, field sort_order. make reservation.status foreign key new model, , sort status__sort_order.

another option sort in sql using order_by parameter in extra().


Comments

Popular posts from this blog

node.js - Mongoose: Cast to ObjectId failed for value on newly created object after setting the value -

[C++][SFML 2.2] Strange Performance Issues - Moving Mouse Lowers CPU Usage -

ios - Possible to get UIButton sizeThatFits to work? -