我收到以下錯誤,Django的對象不是可迭代使用serializers.serialize
模板'對象不是可迭代
def get_AJAX(request, id):
data = serializers.serialize("json", Template.objects.get(pk=id))
return HttpResponse(data)
不過,我使用'get'
所以我不不明白爲什麼我得到這個錯誤。有任何想法嗎?
我收到以下錯誤,Django的對象不是可迭代使用serializers.serialize
模板'對象不是可迭代
def get_AJAX(request, id):
data = serializers.serialize("json", Template.objects.get(pk=id))
return HttpResponse(data)
不過,我使用'get'
所以我不不明白爲什麼我得到這個錯誤。有任何想法嗎?
這是因爲你沒有通過iterable nor a QuerySet,而是通過了Template
對象。如果你想序列化一個對象,你可以做這樣的:
def get_AJAX(request, id):
data = serializers.serialize("json", [Template.objects.get(pk=id)])
return HttpResponse(data)
UPDATE:使用filter
,而不是推薦。
還要考慮使用filter
,而不是爲了避免可能出現的異常,如果PK不存在獲得。這樣,您就不需要支架,因爲它是一個QuerySet
對象
def get_AJAX(request, id):
data = serializers.serialize("json", Template.objects.filter(pk=id))
return HttpResponse(data)
希望它能幫助!
這工作!就這麼簡單,我太愚蠢了! – GrantU
不要對自己這麼努力:)我很高興它的工作! –
你想完成什麼?序列化一個對象? –
@Paulo Bu,是的,當這是一個可以工作的列表,但有1個對象時,我得到了錯誤。 – GrantU