当我们使用像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查询联系起来
答案 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。