如何让Tastypie获取原始SQL查询集? queryset = Foo.objects.raw(sql)
似乎不起作用。这不可能吗?
答案 0 :(得分:1)
queryset = super(class_name, self).get_query_set()
return queryset.whatever()
答案 1 :(得分: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]
答案 2 :(得分:0)
您可以尝试覆盖脱水功能以包含原始sql语法,或者对查询集进行逐个请求更改http://django-tastypie.readthedocs.org/en/latest/cookbook.html
我个人更愿意在view.py中创建一个自定义视图函数,它匹配你的api REST语法 - 例如/ api / v1 / rawsql之类的东西,以保持你的模式相同 - 你只是在管理它有所不同。
答案 3 :(得分: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]