Как создать динамические поля в классе расширения Google App Engine? - PullRequest
4 голосов
/ 12 ноября 2010

У меня есть класс db expando, называемый widget.

Я передаю строку json, преобразую ее в dict и затем добавляю ее в хранилище данных.

Мой вопрос: какМогу ли я выполнить цикл по моему dict для создания динамических полей.

widget = Widget.get_by_key_name(key_name)
widget.name = self.request.get('wname')
fields = simplejson.loads(self.request.get('wcontents'))
for k,v in fields.iteritems():
  widget.k = v

Это отображает "k" в качестве имени моего поля в противоположность значению k в dict.

Ответы [ 2 ]

4 голосов
/ 12 ноября 2010

Синтаксис widget.k ссылается на атрибут k объекта widget.Чтобы динамически выбрать, какой атрибут вы устанавливаете, используйте встроенный метод setattr:

setattr(widget, k, v)

Динамическая установка такого атрибута создаст полеэто конкретное лицо.

0 голосов
/ 12 ноября 2010

Попробуйте:

for k, v in fields.items()
...