Django 不使用for循环从Queryset提取对象值

Django 不使用for循环从Queryset提取对象值,django,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

我有一个模型叫

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个标签呢?这难道不会减缓反应吗?
是否有更有效的方法来处理此问题?

如果您只需要标记名,请使用
值\u列表查询:

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

如果只需要标记名,请使用
值\u列表
查询:

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