从json

时间:2016-02-11 16:08:22

标签: django python-2.7 orm tastypie django-orm

我已经看到,在tastypie中,例如,可以通过来自客户端的json请求发送查询,并且tastypie知道将它(我猜)转换为ORM查询并执行它。

我想模仿这种能力,以便我能够转换这个json:

{
  "foo__isnull": false,
  "name__in": "paul,george",
  "baz__fish": "blah",
  "limit": 6
}

类似

MyModel.objects.filter(foo__isnull=False, name__in=["paul", "george"], ...)

没有完全使用tastypie的开销 - 是否可能?

1 个答案:

答案 0 :(得分:2)

您可以使用**传递查询:

query = json.loads(your_json_string)    
MyModel.objects.filter(**query)

如果您想知道如何将paul,george转换为列表,请执行:

query = json.loads(your_json_string)
query['name__in'] = query['name__in'].split(',')