1

我有一个模型叫

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 个标签呢?这不会减慢响应速度吗?有没有更有效的方法来处理这个问题?

4

1 回答 1

6

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

tags = UserTag.objects.filter(users=request.user).values_list('name', flat=True)
于 2013-02-14T01:36:58.183 回答