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:
- pending
- approved
- canceled
but current order is:
- pending
- canceled
- 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
Post a Comment