django对字段分组
时间: 2023-10-11 15:09:58 浏览: 125
对Django中的权限和分组管理实例讲解
Django可以通过在模型类中使用`models.Field.choices`来定义字段的选项,然后可以使用`groupby`方法将这些选项分组。
例如,如果有一个模型类`Person`,包含一个字段`gender`,可以使用以下代码将其分组:
```
from itertools import groupby
from django.db import models
class Person(models.Model):
GENDER_CHOICES = (
('M', 'Male'),
('F', 'Female'),
('O', 'Other'),
)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
@classmethod
def get_gender_groups(cls):
queryset = cls.objects.all().order_by('gender')
groups = groupby(queryset, lambda obj: obj.get_gender_display())
return [(gender, list(group)) for gender, group in groups]
```
然后可以在视图中调用`Person.get_gender_groups()`来获取分组后的数据。
阅读全文