我想为每个parent_types检索5件衣服(“top”,“bottom”,“shoes”)
user.clothes_set.filter(type="top")[:5]
user.clothes_set.filter(type="bottom")[:5]
user.clothes_set.filter(type="shoes")[:5]
我想以更高效的方式做到这一点。 (三个过滤器很讨厌!)
top, bottom, shoes = user.clothes_set.filter(~~~) <- retrieve `5 items each`
这里有布料模型
class Clothes(models.Model):
id
type = # top, bottom and shoes
owner = ForeignField # some one who post
我应该重新设计模型吗?我应该将'type'字段排除在类之外吗?还是不可能?
答案 0 :(得分:1)
这样的东西?
user.clothes_set.filter(type__in=['top', 'bottom', 'shoes'])[:5]
更新:如下评论;
offset = lambda t: user.clothes_set.filter(type=t)[:5]
top, bottom, shoes = offset('top'), offset('bottom'), offset('shoes')