Django ORM如何解析SQL查询?

时间:2016-08-10 15:16:09

标签: django django-models django-orm

当我们使用像User.objects.filter(**params)这样的东西时,django ORM如何为此准备相应的SQL查询?

实际上我想为Neo4j查询构建一个插件..一个Object-Graph-Mapper。 示例 - Student.objects.get(name="Joe")将从neo4j返回相应的节点,使得密码查询类似于MATCH (s:Student) WHERE s.name="Joe" RETURN s

为此,我需要知道Django ORM究竟是如何为SQL工作的,以便我可以将它与CQL查询联系起来

1 个答案:

答案 0 :(得分:2)

看看django queryset reference。要从查询集中获取查询,请使用queryset.query.__str__()。例如,如果您的查询如下

ipdb>queryset = User.objects.all()
ipdb>queryset.query.__str__()
u'SELECT `auth_user`.`id`, `auth_user`.`password`, `auth_user`.`last_login`, `auth_user`.`is_superuser`, `auth_user`.`username`, `auth_user`.`first_name`, `auth_user`.`last_name`, `auth_user`.`email`, `auth_user`.`is_staff`, `auth_user`.`is_active`, `auth_user`.`date_joined` FROM `auth_user`'

根据您使用neo4j图表时的上一条评论,请查看neo4j-django