在没有for循环的情况下从Queryset中提取Object值

时间:2013-02-14 01:18:10

标签: django

我有一个名为

的模型
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 个答案:

答案 0 :(得分:3)

如果您只想要标记名称,请使用values_list查询:

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