1
我寫了一個Ajax調用來返回actor名稱。除了序列化以外,一切正常。將Queryset轉換爲包含JSON值的字典
模型
class ActorManager (models.Manager):
def actor_like(self, query):
actor_list = self.values('name', 'id').filter(name__icontains=query)
# actor_list = self.filter(name__icontains=query) <-- this works. but I need 'values'
return actor_list
view.py
def search(request, types, query):
lists = Actor.objects.actor_like(query)
data = serializers.serialize('json', lists)
return HttpResponse(data, content_type='application/json')
上述拋出錯誤,在/搜索/演員/ BAL
AttributeError的/
'字典'對象沒有屬性'_meta'
而模型查詢「值」工作正常。下面的工作正常,
actor_list = self.filter(name__icontains=query)
我需要「值」,以減少數據傳輸。我怎樣才能做到這一點?
請幫助,在此先感謝。
您不需要序列化查詢集對象只需添加字典作爲數據['列表'] =列表,您可以使用列表作爲模板中的對象。 –
如果您正在使用json進行ajax調用,則Tanveer是正確的,序列化應該從作爲列表返回的查詢集自動完成。 Serializer.serialize用於將整個查詢集返回給json,您可以將其返回到視圖模板。 –
你們是對的。如果您已添加「答案」而不是評論,我會將您的標記標記爲正確答案! –