gpt4 book ai didi

python - 用django自己加入postgresql

转载 作者:行者123 更新时间:2023-11-29 12:22:30 25 4
gpt4 key购买 nike

首先,Django 添加了不必要的引号,导致 PostgreSQL 语法错误:

Model.objects.extra(tables=['(SELECT ... FROM model) AS "model_alias"'],
where=...)

产生

SELECT ... FROM "model" , "(SELECT ...) AS "model_alias"" WHERE ...

--语法错误,其中

SELECT ... FROM "model" , (SELECT ...) AS "model_alias" WHERE ...

没问题。

其次,它忽略了extra方法的tables参数中表名的额外出现,而the documentation应创建别名的 promise :

Model.objects.extra(tables=['model'], where=...)

只生成 SELECT ... FROM "model"WHERE ... -- 没有别名。

错在哪里?如何克服 Django 的这种行为?

最佳答案

您可能需要使用原始 SQL 来执行此操作。参见 Performing raw SQL queries .它可能看起来像这样:

Model.objects.raw("""
SELECT * FROM 'model' JOIN 'model_alias' ON (...)
WHERE (...)
""")

关于python - 用django自己加入postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11617197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com