2013-02-14 5 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

Смежные вопросы