2013-02-15 74 views
9

我正在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) 

回答

1

如果你正在運行的django的舊版本,那麼你不能序列QuerySets盒子外面。嘗試

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

也可能檢查get_related_subcategory不是空的。您正在運行哪個版本的django

+0

我正在使用django 1.4 – masterofdestiny 2013-02-15 10:35:32

+0

並且建議的更改有效嗎? – danodonovan 2013-02-15 10:37:26

+0

尚未嘗試給我一秒 – masterofdestiny 2013-02-15 10:38:57

相關問題