2014-08-30 44 views
1

「名單」對象有沒有屬性「_meta」 我嘗試後,我能,但我不能返回JSON響應多陣列JSON錯誤的Django

def regions(request): 
    result_set = [] 
    for u in Regions.objects.all()[:100]: 
     if 'a' in u.country: 
      result_set.append([u ,Subregions.objects.filter(region_id=u.id)]) 
    data = serializers.serialize('json', result_set) 
    return HttpResponse(data) 

錯誤代碼合併2對象數組: AttributeError的在/ 「列表」對象沒有屬性「_meta」

回答

1

serializers.serialize接受產生模型isntances作爲第二個參數可迭代。

但是result_set是模型列表的列表。您需要調整代碼以生成模型實例。

+0

此後;如果u.country中的'a'爲: result_set.append([u。國家,列表(Subregions.objects.filter(region_id = u.id))]) data = json.dumps(result_set) return HttpResponse(data,mimetype ='application/json') – user3036749 2014-08-30 13:17:34

+0

我得到的錯誤是不是JSON可序列化的。 相同的ruby代碼沒有得到@ result_set.push([c.country,City.where(region_id:c.id).take(20)]) – user3036749 2014-08-30 13:25:01

+0

@ user3036749的錯誤代碼,這個怎麼樣? 'result_set.append(U); result_set.extend(Subregions.objects.filter(REGION_ID = u.id))'。相應地編輯答案。 – falsetru 2014-08-30 13:25:53

0

基本上作爲它的模型列表,它不能序列化。而且很可能你的模型也有一個外鍵關係。

爲了解決這個問題,你可以在模型中有一個名爲as_json()的方法。將模型轉換成字典。

總體而言,您的主要目標應該是將模型轉換爲字典。