2014-01-21 3 views
0

Я прошу прощения, если мой вопрос глупый, но, пожалуйста, извините меня, как я новичок в Google App Engine и питон у меня есть и сущность имени РасположениеЕсли условие GQL запроса дает ошибку

class Location(db.Model): 
    place = db.StringProperty(required = True) 
    address = db.TextProperty(required = True) 
    approx_distance = db.StringProperty(required = True) 

GQL запрос

location = db.GqlQuery("SELECT * FROM Location WHERE place='Mumbai'") 

выдает ошибку атрибут

AttributeError: 'GqlQuery' object has no attribute 'place' 

Пожалуйста, помогите

+1

В дополнение к ответу ниже, попробуйте использовать объекты модели для выполнения запросов. 'location = Location.all(). filter ('place =', 'Mumbai'). get()' вместо использования GQL. Я нашел 99% случаев, когда я никогда не использовал GQL. О, и если вы только начинаете с appengine, я настоятельно рекомендую вам использовать 'ndb', а не' db'. –

+0

Ошибка, которую часто делают люди, полагает, что GQL как-то ближе к «родному» хранилищу данных, таким же образом, что SQL является более родным, чем ORM в традиционной базе данных. Это не тот случай: GQL - это искусственная реализация поверх механизма запросов, как и библиотеки db/ndb. –

ответ

3

Вы должны посмотреть на строку кода, на которой происходит ошибка; это не те строки, которые вы публикуете. Вероятно, вы делаете что-то вроде location.place, но location - это GqlQuery, а не результаты запроса. Вы, вероятно, хотите:

location = db.GqlQuery("SELECT * FROM Location WHERE place='Mumbai'").get() 

Чтобы получить первый результат, или использовать fetch для получения списка результатов.

+0

thanx это работает! – Bhushan

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