带ForeignKey的Django原始SQL查询

2024-04-23 09:01:47 发布

您现在位置:Python中文网/ 问答频道 /正文

模型.py

class Author(models.Model):
    name = models.CharField(max_length=30)
    surname = models.CharField(max_length=50)

class Exhibit(models.Model):
    author_id = models.ForeignKey(Author)
    title = models.CharField(max_length=60)

创建.sql(PostgreSQL)

^{pr2}$

这些是我的简化模型(用数据库表一一对应),我正在执行一个类似的原始查询

Exhibit.objects.raw("SELECT * FROM Exhibit WHERE author_id = 1")

结果,我得到一个ValueError-无法赋值“1”:附件作者“必须是“作者”实例。在

有没有办法不使用ORM和作者.objects(和类似的东西)只要查询数据库?在


Tags: namepy模型idmodelobjectsmodels作者
2条回答

看看ormsql查询,也许这会有所帮助

x = Exhibit.objects.filter(author_id=x)
print x.query


#check-up
x2=Exhibit.objects.raw(str(x.query))

用户django.db.connection执行此操作:

from django.db import connection
cursor = connection.cursor()
cursor.execute("SELECT * FROM Exhibit WHERE author_id = 1")
result = cursor.fetchall()

相关问题 更多 >