Как сериализовать RawQuerySet в Django? - PullRequest
3 голосов
/ 23 апреля 2011

У меня проблема с сериализацией RawQuerySet. У него нет функции значений. Я также добавил десятичную аннотацию к каждому объекту, которая является счетчиком поля.

Пример кода:

cow_query = """SELECT cow.* (count(leg.id) / 4) as 'percentage' FROM cow JOIN leg ON leg.cow_id = cow.id;"""  
cows = Cow.objects.raw(cow_query)  
json = simplejson.dumps(cows) # this will not work
return HttpRepsonse(json)

Каков наилучший способ сериализации. Я хочу, чтобы атрибуты объекта коровы сериализовались с аннотацией Самое простое - это, вероятно, просто преобразовать все в dict, списки и т. Д., А затем вызвать simplejson.dumps, но это может быть не самым эффективным?

UPDATE: Просто попытался использовать http://docs.djangoproject.com/en/dev/topics/serialization/#id2, но это не добавит процент к результату json.

1 Ответ

3 голосов
/ 23 апреля 2011

Как насчет simplejson.dumps([dict(cow.__dict__) for cow in cows])?Если ваша Cow модель имеет только простые строковые или целочисленные значения, это должно работать, в противном случае вам придется обрабатывать более сложные типы вручную (например, DateTimeField должен быть unicode -ed для simplejson).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...