如何让 Tastypie 获取原始 sql 查询集?queryset = Foo.objects.raw(sql)
似乎没有工作。不可能吗?
问问题
1474 次
4 回答
1
queryset = super(class_name, self).get_query_set()
return queryset.whatever()
于 2013-02-10T07:39:58.167 回答
1
这似乎有效:
class BarResource(ModelResource):
class Meta:
queryset = Bar.objects.all()
def dehydrate(self, bundle):
qs = Bar.objects.raw('SELECT * FROM foo_bar')
return [row for row in qs]
于 2013-02-11T21:42:35.880 回答
0
您可以尝试覆盖脱水函数以包含原始 sql 语法和/或对查询集进行按请求更改http://django-tastypie.readthedocs.org/en/latest/cookbook.html
我个人更愿意在 view.py 中创建一个自定义视图函数,它与你的 api REST 语法相匹配——例如 /api/v1/rawsql 类似的东西来保持你的模式相同——你只是以不同的方式管理它。
于 2013-02-10T01:55:50.320 回答
0
这对我有用:D
class UsersResource(ModelResource):
class Meta:
resource_name = "users"
queryset = User.objects.all()
allowed_methods = ['get']
def obj_get_list(self, bundle, **kwargs):
query = """
SELECT
id, name
FROM
users
ORDER BY name"""
qs = User.objects.raw(query)
return [row for row in qs]
于 2015-03-23T20:58:37.580 回答