Запрос хранилища данных для всех моделей, которые содержат определенный элемент в свойстве listproperty - PullRequest
1 голос
/ 23 января 2011

Эй, у меня есть такая модель:

class List(db.Model):
    user = db.ReferenceProperty(User)
    listname = db.StringProperty()
    published = db.DateTimeProperty(auto_now_add=True)
    score = db.IntegerProperty(required=False)
    tld = db.StringProperty(required=False)
    categories = db.StringListProperty()

К списку может быть прикреплено несколько категорий (отсюда свойство списка).Я хочу использовать эти категории для создания страниц категорий, поэтому мне нужен запрос, который я могу использовать для выборки всех списков, которые имеют определенную категорию в атрибуте их категорий.Я пробовал несколько разных подходов, и ни один из них не работает.Есть ли такой запрос?(следующее не работает):

select * from List where 'Philosophy' in categories

Если нет, мне придется сделать что-то вроде:

lists = List.all()
for list in lists:
    if 'Philosophy' in list.categories:
        #add this list to the lists to display on page

Но такое чувство, что это было бы либо невероятномедленно или как-то сломается ...

Есть идеи?Спасибо!

Том

ОБНОВЛЕНИЕ:

Упс, я решил это извините за беспокойство!Для тех, кто заинтересован, вы можете просто использовать запрос, подобный следующему:

SELECT * FROM List where categories = 'Philosophy'

, который будет соответствовать любому списку, в котором есть "Философия" в категориях.

1 Ответ

2 голосов
/ 27 января 2011

Ой, я решил это извините за беспокойство!Для всех, кто заинтересован, вы можете просто использовать запрос, подобный следующему:

SELECT * FROM List where categories = 'Philosophy'

, который будет соответствовать любому списку, в котором есть "Философия" в категориях.

...