我有2个型号
class Project(models.Model):
name = models.TextField(max_length=150)
class Asset(models.Model):
name = models.TextField(max_length=150)
project = models.ForeignKey('Project', related_name='ass')
我可以使用这个命令来获取一个项目及其所有资产,这很酷。
proj = Project.objects.get(pk='QQ')
但我只想获得具有特定资产的项目,这是我的命令:
proj = Project.objects.get(pk='QQ', ass__pk=50)
但它仍然返回所有资产。然后我打开 SQL 调试模式,发现 Django 运行了 2 个 SQL。
我认为第一个SQL就足够了,我不知道为什么要执行第二个SQL。 我使用 Django 4.2 和 Python 3.8.10,有人可以帮忙吗?
尝试
proj = Project.objects.filter(pk='QQ', ass__pk=50).first()