gpt4 book ai didi

Django 渴望加载多对多

转载 作者:行者123 更新时间:2023-12-04 13:38:09 24 4
gpt4 key购买 nike

有很多型号

class FacultyMember(models.Model):
# some attributes

class Publication(models.Model):
# some attributes
author = models.ManyToManyField(FacultyMember, blank=True)

class Project(models.Model):
# some attributes
researchers = models.ManyToManyField(FacultyMember, blank=True)

而且我想通过热切加载获得所有相关项目和出版物的 FacultyMember。

我尝试一些像下面的代码
FacultyMember.objects.filter(
pk=id,
first_name=first_name,
last_name=last_name
).select_related('project_set').select_related('publication_set')

但是它不起作用。

如何通过急切加载在 django orm 中加入相关字段。

最佳答案

Manytomany 使用 prefetch_related;

FacultyMember.objects.filter(
pk=id,
first_name=first_name,
last_name=last_name
).prefetch_related('project_set').prefetch_related('publication_set')

引用这里 https://docs.djangoproject.com/en/1.8/ref/models/querysets/#prefetch-related

关于Django 渴望加载多对多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33096670/

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