Лучший способ найти тег среди массива объектов тегов в Django - PullRequest
1 голос
/ 12 июля 2011

Я использую django-тегирование и у меня есть массив объектов тегов. Как лучше всего определить, есть ли среди них данный тег?

def is_new (self):
    tags = Tag.objects.get_for_object(self) 
    tagged = False

    for tag in tags:
        if tag = 'new':
            tagged = True

    return tagged

Ответы [ 2 ]

1 голос
/ 13 июля 2011

Я никогда не использовал теги django, но при быстром просмотре источника .get_for_object возвращает набор запросов тегов для этого объекта. Не фактический список.

Я не уверен, работает ли ваш код [исходя из вопроса о назначении / сравнении] или вы просто хотите улучшить его. Но так как вы возвращаете набор запросов, вы не можете продолжить его фильтровать, например:

Tag.objects.get_for_object(self).filter(name='new')

или чтобы иметь возможность использовать пример Джеймса:

if 'new' in tags:
   return True

Я думаю, вам нужно сначала превратить набор запросов в список.

list(tags)

А потом должно получиться.

См. документацию для принудительной оценки списка - и обратите внимание на проблемы с памятью при этом.

Так что моей рекомендацией было бы сначала протестировать фильтрацию и сообщить нам, работает ли она, потому что теперь мне стало любопытно.

0 голосов
/ 13 июля 2011
tags = Tag.objects.get_for_object(self) 

if 'new' in tags:
    return True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...