首页 > 解决方案 > 如何使用 django-sortable-listview (SortableListView) 通过 Django 模型方法对列进行排序?

问题描述

使用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”列进行排序吗?

标签: pythondjango

解决方案


推荐阅读