我不得不使用models.CharField在我的一个模型中存储一些额外的标志。所以我滥用田地的每封信作为旗帜。例如,“MM5”意味着“男性,已婚,年龄超过50岁”和“FS2”“女性,单身,年龄在20岁以上”。是否有任何可接受的方式来切割/重新组合Django查询集而不使用API?
我正在使用方法来查询/访问这些标志。当然,我不能在queryset API中使用这些方法。我使用列表解析调用方法来筛选初始查询集,并将其转化成一个普通的名单,这是大多数模板喂养不够好:
people = People.objects.filter(name__startswith='J')
people_i_want = [p for p in people if p.myflags_ismale() and p.myflags_isolderthan(30)]
那么,有没有办法重新转换这些任何ok'ish方式重新列入查询集?或者基于我的方法的输出对查询集进行斩波/过滤,而不是首先将其转换为普通列表?