我使用Django原始查询集从数据库中选择数据。
在将此json序列化数据作为API返回到django rest_framework之前,我需要在字段上进行翻译(通过使用ugettext)
但是我有优化问题,因为我发现手动将字典附加到列表需要很长时间,特别是如果我有很多数据库行。
经过一番搜索,我找到了一个声称可以更快地序列化JSON的库ujson。但是我努力使用它,因为我需要这个原始查询来返回翻译的字段名称(水果)
任何人都知道如何用其他更快的方法替换这个字典方法来序列化JSON数据?
all_fruits = []
activate ("en")
raw_query = MyObject.objects.raw(" select id, fruits from my_table ")
for each_name in raw_query:
json_obj = dict( id = each_name.id,
fruits= ugettext(each_name.fruits)
)
all_fruits.append(json_obj)
答案 0 :(得分:0)
只有当你真的没有其他解决方案时才能避免原始SQL, Django QuerySet 为数据库查询提供了非常棒的全功能API,以下解决方案可以满足您的需求:
all_fruits = []
activate ("en")
my_object_list = MyObject.objects.all()
for obj in my_object_list.values():
all_fruits.append({"id":obj.id, "fruits" : ugettext(obj.fruits)})