Django: <django.utils.functional .__ proxy__ object at 0x7feaac2761d0> не является сериализуемым JSON

У меня проблема в сериализации django

Вот моя модель для государства

class State(models.Model): class Translation(translation.Translation): name = models.CharField(max_length=64) capital = models.ForeignKey('City', related_name="state_capital", null=True) country = models.ForeignKey(Country, related_name="state_country", null=True) latitude = models.DecimalField(max_digits=9, decimal_places=6, default=Decimal("0.0")) longitude = models.DecimalField(max_digits=9, decimal_places=6, default=Decimal("0.0")) code = models.CharField(max_length=2) 

На основе county_id я фильтрую имя состояний и пытаюсь преобразовать в json-формат, чтобы я мог обновить поле выбора.

Но я все время делаю это.

 <django.utils.functional.__proxy__ object at 0x7feaac2761d0> is not JSON serializable 

Вот мои взгляды.

 def get_getstate(request): catid = request.GET['catid'] get_related_subcategory = State.objects.filter(country_id = catid) json_models = serializers.serialize("json", get_related_subcategory) return HttpResponse(json_models, mimetype="application/javascript") 

Пожалуйста, помогите мне решить эту ошибку.

Обновить

Я тоже так пробовал

 from django.core.serializers.json import Serializer as JSONSerializer import decimal import json class DecimalEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, decimal.Decimal): return '%.2f' % obj # Display Decimal obj as float return json.JSONEncoder.default(self, obj) class DecimalSerializer(JSONSerializer): def end_serialization(self): self.options.pop('stream', None) self.options.pop('fields', None) json.dump(self.objects, self.stream, cls=DecimalEncoder, **self.options) 

С этой точки зрения

 def get_getstate(request): catid = request.GET['catid'] get_related_subcategory = State.objects.filter(country_id = catid) my_serializer = DecimalSerializer() print my_serializer.serialize(get_related_subcategory, indent=4) 

2 Solutions collect form web for “Django: <django.utils.functional .__ proxy__ object at 0x7feaac2761d0> не является сериализуемым JSON”

django.utils.functional.__proxy__ object – ленивый перевод. Документация Django гласит, что вызов unicode () с ленивым переводом, поскольку аргумент будет генерировать строку Unicode в текущей локали ( https://docs.djangoproject.com/en/dev/ref/unicode/#translated-strings ). Когда перевод сделан, сериализация имеет больше смысла.

Если вы используете более раннюю версию django вы не можете сериализовать QuerySets из коробки. Пытаться

 json_models = serializers.serialize("json", list(get_related_subcategory)) 

Также может быть полезно проверить, что get_related_subcategory не пуст. Какую версию django вы используете?

  • Как я могу получить «старый» zip () в Python3?
  • Как работает класс Meta Django?
  • Ошибка импорта импорта: невозможно импортировать имя 'isMappingType'
  • Выполнение неблокирующих запросов? - Django
  • Нужна помощь в понимании кометы в Python (с Django)
  • Как сообщить Django не буферизовать данные HTTP POST?
  • Как добавить что-то к PYTHONPATH?
  • Django1.9: объект 'function' не имеет атрибута '_meta'
  • Должен ли я редактировать файл миграции django для редактирования несоответствующих зависимостей
  • Автоматическое создание альфа-числового идентификатора для модели Django
  • Django UUIDField modelfield вызывает ошибку в Django admin: плохо сформированная шестнадцатеричная строка UUID
  • Python - лучший язык программирования в мире.