Python 属性错误:';简历';对象没有属性';预回迁相关';

Python 属性错误:';简历';对象没有属性';预回迁相关';,python,django,python-3.x,django-models,django-orm,Python,Django,Python 3.x,Django Models,Django Orm,我试图了解预取相关和选择相关用于优化的用法。我在博客的某个地方了解到,使用预取和选择的一个地方是,预取与选择相关用于反向关系,选择与选择相关用于正向关系。就我而言,有简历模式和教育模式。教育模型在查询时没有写入附加的_集,而是将简历的FK与相关的_名称设置为反向关系。我需要列出所有的教育要求的用户与要求的用户简历。我可以在没有以下优化技术的情况下做到这一点 education_instance = Resume.objects.get(applicant=request.user).educat

我试图了解预取相关和选择相关用于优化的用法。我在博客的某个地方了解到,使用预取和选择的一个地方是,预取与选择相关用于反向关系,选择与选择相关用于正向关系。就我而言,有简历模式和教育模式。教育模型在查询时没有写入附加的_集,而是将简历的FK与相关的_名称设置为反向关系。我需要列出所有的教育要求的用户与要求的用户简历。我可以在没有以下优化技术的情况下做到这一点

education_instance = Resume.objects.get(applicant=request.user).educations.all()
当我尝试使用以下内容时,我得到了我在标题中声明的错误

education_instance = Resume.objects.filter(applicant=request.user).prefetch_related('educations')
这是我的模型

class Resume(models.Model):
    applicant = models.OneToOneField(User, on_delete=models.CASCADE)
    name = models.CharField(max_length=100, blank=False, null=False, help_text="Full Name")

class Education(models.Model):
    resume = models.ForeignKey(Resume, related_name='educations')
    name = models.CharField(max_length=100, blank=False, null=False, help_text="Name of an institution")

有谁能告诉我一些简单的外行术语与select_相关和prefetch_相关?我无法理解从您提供的异常中得到的问题,您正在尝试调用对象
Resume
上的
.prefetch\u related()
,而不是
Resume
s
QuerySet

所以,一定要跑

Resume.objects.filter(applicant=request.user).prefetch_related('educations')
不是


从您提供的异常情况来看,您正在尝试对对象
Resume
调用
.prefetch\u related()
,而不是
Resume
s
QuerySet

所以,一定要跑

Resume.objects.filter(applicant=request.user).prefetch_related('educations')
不是


检查该帖子,了解与选择相关和与预回迁相关的信息。

检查该帖子,了解与选择相关和与预回迁相关的信息。

首先浏览此[与预回迁相关的文档][1]

[1] :然后你会发现你不能像这样使用它

你必须申请教育

education_instance = Education.objects.filter(resume__applicant == request.user).prefetch_related('resume')

希望这将对您有所帮助。

首先浏览此[预回迁相关文档][1]

[1] :然后你会发现你不能像这样使用它

你必须申请教育

education_instance = Education.objects.filter(resume__applicant == request.user).prefetch_related('resume')

希望这会对您有所帮助。

实际上,在这种情况下,您应该使用select_related。
据我所知,prefetch_-related用于多对多关系,它进行两次查询以检索对象,而select_-related用于普通fk或一对一关系,它使用联接在一次查询中获取所有对象。

实际上,在这种情况下,您应该使用select_-related。
据我所知,prefetch_-related用于多对多关系,它进行两次查询以检索对象,而select_-related用于普通fk或一对一关系,它使用联接在一次查询中获取所有对象。

这样,我只得到一个查询列表,而不是一个查询列表all@milan你所说的一个
查询集
是什么意思只获取一个查询列表,而不是all@milan您所说的“一个
查询集”是什么意思?谢谢您提供的解决方案。我一定会看看所有的链接,你们都提到了我。在访问该链接之前,我不确定我是否会进入该链接,因此我想问一下,预回迁中的简历与此相关。是否是教育表中的字段(fk)?是的,预回迁中的简历与教育表中的fk相关。谢谢您的解决方案。我一定会看看所有的链接,你们都提到了我。在访问该链接之前,我不确定我是否会进入该链接,因此我想问一下,预回迁中的简历与此相关。是否是教育表中的字段(fk)?是否预回迁中的简历与教育表中的fk相关。