Как создать вывод JSON для использования с автозаполнением jquery ui? - PullRequest
0 голосов
/ 28 октября 2011

Здесь - пример ответа json, необходимого для автозаполнения jquery ui. Похоже, в моем случае нужны только label и value.

У меня есть следующий код:

class City(db.Model):
  '''Storage for cities ids.

  Index
    key_name: id of the city
    parent:   Country of the city
  '''
  city_name = db.StringProperty()

term = self.request.get('term')
query = City.all()
query.filter('city_name >=', term)
query.filter('city_name <=', unicode(term) + u"\ufffd")
cities = query.fetch(20, 0)

Как отформатировать результат в формате json в формате, таком как значение = имя_города, идентификатор = имя_ключа?

Я также где-то видел следующий код, но он не работает для меня:

map(lambda x: x.city_name(), cities)

1 Ответ

2 голосов
/ 28 октября 2011

Вы можете использовать simplejson, который включен в django.utils:

from django.utils import simplejson as json 

Затем создать массив словарей и закодировать его в json:

city_array = []
for city in cities:
  city_array.append({'value': city.city_name, 
                     'label': city.city_name,
                     'id': city.key().name()})

json_message = json.dumps(city_array)
...