Используя пакет django -sortable-listview , я использую SortableListView для сортировки всех полей модели. В моем случае, помимо полей модели, я также хочу отсортировать ее по методу модели.
Models.py
class Employee(models.Model):
name = models.CharField()
designation = models.CharField()
company = models.ForeignKey(Company)
team = models.CharField()
# method
def team_count(self):
count = len(Employee.objects.filter(team=self.team))
return count
Views.py
class EmployeeListView(SortableListView, generic.list.ListView):
allowed_sort_fields = {'name': {'default_direction': '', 'verbose_name': 'Employee Name'},
'designation': {'default_direction': '', 'verbose_name': 'Designation'},
'team': {'default_direction': '', 'verbose_name': 'Team Name'},
'team_count()': {'default_direction': '', 'verbose_name': 'No of Team members'}}
default_sort_field = 'name'
queryset = Employee.objects.all()
paginate_by = 10
В приведенном выше примере я хочу указать имя сотрудника, его назначение, название команды и количество членов команды.
Кто-нибудь поможет мне отсортировать столбец 'team_count'?