Django Rest Framework sql字符串查询

问题描述 投票:0回答:1

我知道在Django中将API过滤添加到其他API是否非常容易。

/api?name=joseph&age=5. # I already have that

但是,我正在使用react包来生成查询,并且它会这样生成SQL字符串:

"name = 'joseph' AND age = 5"

我想知道用SQL字符串过滤表的最简单方法是什么。该查询可以嵌套有OR,AND和NOT。请帮助..

django django-rest-framework django-queryset django-filter
1个回答
0
投票

在django中执行原始sql查询很容易你表演。只是您需要在您的查询集中添加raw并执行模型构建。

以下是您参考的代码片段

>>> Person.objects.raw('SELECT id, first_name, last_name, birth_date FROM myapp_person')
...
>>> Person.objects.raw('SELECT last_name, birth_date, first_name, id FROM myapp_person')
... 

根据您的要求的示例:

name = 'joseph'
age = 5
sqlQuery = "SELECT * from <DBNAME> where name = "+name+" AND age = "+age
result = Person.objects.raw(sqlQuery)

# use of OR operator
name = 'joseph'
age = 5
result = Person.objects.filter(name=name) | Person.objects.filter(age=age) 

## use of AND operator
name = 'joseph'
age = 5
result = Person.objects.filter(name=name).filter(age=age) 

您可以在这里阅读more

© www.soinside.com 2019 - 2024. All rights reserved.