Python, что это значит «AttributeError: объект« Юникод »не имеет атрибута« has_key »»

Я хотел бы спросить, что это значит "AttributeError: объект 'Unicode' не имеет атрибута 'has_key'" Вот полная трассировка стека:

Traceback (most recent call last):
  File     "D:\Projects\GoogleAppEngine\google_appengine\google\appengine\ext\webapp\__init__.py", line 509, in __call__
    handler.post(*groups)
  File "D:\Projects\workspace\foo\src\homepage.py", line 71, in post
    country=postedcountry
  File "D:\Projects\GoogleAppEngine\google_appengine\google\appengine\ext\db\__init__.py", line 656, in __init__
    prop.__set__(self, value)
  File "D:\Projects\GoogleAppEngine\google_appengine\google\appengine\ext\db\__init__.py", line 2712, in __set__
    value = self.validate(value)
  File "D:\Projects\GoogleAppEngine\google_appengine\google\appengine\ext\db\__init__.py", line 2742, in validate
    if value is not None and not value.has_key():
AttributeError: 'unicode' object has no attribute 'has_key'

Позвольте мне немного подробнее рассказать о ситуации:

Сначала я создал models.py с db.Model для CMSRequest с атрибутом country, который ссылается на класс CMSCountry.

class CMSRequest(db.Model):
  country = db.ReferenceProperty(CMSCountry, required=True)

class CMSCountry(db.Model):
  name = db.StringProperty(required=True)

Затем я создал класс массового загрузчика для импорта данных в CMSCountry

В форме пользователь может выбрать страну из выпадающего списка, результаты будут опубликованы и сохранены в объект CMSRequest

def post(self):
  postedcountry = self.request.get('country')
  cmsRequest = models.CMSRequest(postedcountry)

Возможно, я нашел решение своего вопроса, потому что я не преобразовал опубликованный ключ CMSCountry обратно для сохранения в CMSRequest.

Спасибо всем!

Ответы на вопрос(6)

Ваш ответ на вопрос