2013-02-14 69 views
0

我有一个模型叫提取从QuerySet对象值,而不一个循环

class UserTag(models.Model): 
    name = models.CharField(max_length=64, unique= True) 
    users = models.ManyToManyField(User) 

我想基于这样

usertags = UserTag.objects.filter(users=request.user) 

用户过滤其内容现在我想的列表这个特定查询的所有标签名称。我知道我可以使用循环

for tag in usertags: 
    tags.append(tag.name) 

但是如果用户有1000个标签呢?这不会减慢反应? 有没有更有效的方法来处理?

回答

1

如果你只是想标记名称,使用values_list查询:

tags = UserTag.objects.filter(users=request.user).values_list('name', flat=True) 
+0

这个伟大的工程。非常感谢 :) – Jonathan 2013-02-14 02:34:36