我正在Django的序列化問題Django的:<django.utils.functional .__ proxy__對象在0x7feaac2761d0>不是JSON序列化
這是我爲國家
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)
我正在使用django 1.4 – masterofdestiny 2013-02-15 10:35:32
並且建議的更改有效嗎? – danodonovan 2013-02-15 10:37:26
尚未嘗試給我一秒 – masterofdestiny 2013-02-15 10:38:57