I need to replace _points
property by annotation so that I have the opportunity to sort entries in the Django admin panel by this value.
My model:
class CustomUser(models.Model):
inviter = models.ForeignKey('self', on_delete=models.SET_NULL, null=True, blank=True)
@property
def _points(self):
res = CustomUser.objects.filter(inviter_id=self.id).count()
return res
My admin:
class CustomUserAdmin(admin.ModelAdmin):
list_display = ['created', 'updated']
def get_queryset(self, request):
qs = super(CustomUserAdmin, self).get_queryset(request)
qs = qs.annotate(points=(HOW TO CALCULATE _points HERE?).order_by('points')
return qs