How can I sort a column in Django admin by some simple custom method?
(All the answers I got through was by using annotate
but I don't know how to use it my case).
Assume the model
class Shots(models.Model):
hits = models.PositiveIntegerField()
all = models.PositiveIntegerField()
In admin site I would like to sort by hits to all
ratio:
class ShotAdmin(admin.ModelAdmin):
list_display = ['ratio']
def ratio(self, obj):
return obj.hits / obj.all * 100
I know the ratio
is not a field in DB thus simple ratio.admin_order_field = 'ratio'
won't work and I need to somehow append this as a field but I have no idea how.