【发布时间】:2012-04-05 10:27:11
【问题描述】:
我正在使用 django-transmeta 来内化我的模型。它工作得很好。它像这样将模型保存到数据库中:
name_en, name_de, name_tr ...
所以当您需要 object.name 时,它会返回当前语言环境中的名称,这对我的任务非常有用。
我正在为 RESTful API 使用 sweetpie。 Tastypie 返回表的所有列(name_en、name_de、name_tr)。我想要的是,提出如下请求:
http://127.0.0.1:8000/api/object/?format=json&lang=en
所以服务器应该只响应英文名称(而不是 name_en、name_de、name_tr)。
我该怎么做?什么美味的功能,定制可以处理这个?
更新:
def dehydrate_title(self, bundle):
return bundle.data['title'].upper()
喜欢的东西可以作为解决方案吗?
【问题讨论】:
-
是的,您可以使用 ModelResource 但显式定义字段,例如 name 而不是 name_en。然后使用 dehydrate_name 或只是 dehydrate 从数据库中检索适当的值。可以在确定格式的位置处理 lang 关键字。您可能想查看tastepie.resources 的来源以获取想法,但它会起作用。祝你好运!