2014-04-17 91 views
0

我似乎無法找到在Django中返回JSON列表的正確方法。我選擇的每種方法都會給我一個錯誤。Django/Python:返回JSON

這裏是我有什麼

def filter(request): 
    results = Profile.objects.all 
    results_json = serializers.serialize('json', results) 
    return HttpResponse(results_json, mimetype='application/json') 

我得到這個錯誤'instancemethod' object is not iterable

所以我改成了......

def filter(request): 
    results = Profile.objects.all 
    results_json = serializers.serialize('json', [results]) 
    return HttpResponse(results_json, mimetype='application/json') 

現在我得到這個錯誤:'function' object has no attribute '_meta'

如何正確返回JSON對象?

回答

0

你的兩個問題(前一個和後一個)都與Django或JSON無關。錯誤是因爲您選擇了filter作爲函數的名稱。 filter是Python內置的function的名稱,它導致python解釋器在django視圖對象的上下文中調用時以不同的方式解釋您的方法。

+0

nope。我改變了方法,它仍然給我相同的錯誤 – user2158382

+0

@ user2158382他仍然有一個有效的命名函數和變量的命名函數和變量相同的內置函數將在未來導致你非常混亂的錯誤。 – sdolan

2
results = Profile.objects.all 

必須

results = Profile.objects.all() 

,讓你真正調用QuerySetall方法,而不是僅僅引用它。序列化程序應該能夠從那裏獲取它。