我试图了解预取相关和选择相关用于优化的用法。我在博客的某个地方了解到,使用预取和选择的一个地方是,预取与选择相关用于反向关系,选择与选择相关用于正向关系。就我而言,有简历模式和教育模式。教育模型在查询时没有写入附加的_集,而是将简历的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_相关?我无法理解我遇到的问题
Django ORM中select_related和prefetch_related有什么区别?查看这篇文章,了解选择相关和预取相关。
实际上,在这种情况下,您应该使用select_related。据我所知,prefetch_related用于多对多关系,它进行两次查询以检索对象,而select_related用于普通fk或一对一关系,它使用联接在一次查询中获取所有对象。
从您提供的异常中,您正试图调用对象上的.prefetch_related()
Resume,而不是Resume
sQuerySet
。
所以,一定要跑
Resume.objects.filter(applicant=request.user).prefetch_related('educations')
不
Resume.objects.get(applicant=request.user).prefetch_related('educations')
我得到了这个环境设置的错误,如标题所示。Apache2和mod_wsgi、Python 3.5、Django 2.0.2。我正在使用virtualevn。 我的虚拟环境位于:/home/santosh/Documents/project/project/中,django应用程序位于/home/santosh/Documents/project/Reports中 下面是文件的内容 堆栈跟踪: [Su
这个问题又来了,请耐心听我说。 我在Ubuntu 16.04上,我试图用pip3安装Kmodes,但我遇到了这个错误。我尝试从零开始删除pip/pip3并重新安装,但没有解决问题。 我找到了以前关于同一问题的问题,但它没有像那样解决这个问题。 这个问题的解决方案是什么,我能做些什么来解决它?
我只是想按特定的列订购dask数据帧。 代码1-如果我叫它,它显示为确实是一个ddf 产出1 代码2 产出2 尝试解决方案 这是官方dask文档中的一个示例 仅熊猫-数据帧对象没有属性“sort\u values” 仅熊猫-“DataFrame”对象没有属性“sort” DASK答案-https://stackoverflow.com/a/40378896/10270590 我不想将其设置为索引,
使用Python 2.7,我使用Tkinter构建了一个图形用户界面。在我的图形用户界面上,我有一个打开输入弹出框的按钮。对弹出框的调用是: 弹出框构造为: 在弹出框中输入任何内容之前,我得到一个错误;完整堆栈跟踪如图所示(分为几行,因此它不仅仅是一堆文本): Tkinter回调中的异常 回溯(最近一次呼叫最后一次): 文件“C:\用户\ajpung\AppData\本地\连续体\Anaconda
问题内容: 我想转换火花数据框架以使用以下代码添加: 详细的错误消息是: 有人知道我在这里做错了吗?谢谢! 问题答案: 您无法使用数据框,但可以将数据框转换为RDD并通过映射将其映射。在Spark 2.0之前,别名为。使用Spark 2.0,您必须先明确调用。
问题内容: 我如何解决此错误,我是从GitHub下载此代码的。 引发错误 请帮我解决这个问题! 我用了: 我得到这个错误。有人帮我,我只想让它工作为什么这么难? 问题答案: 我怀疑您从中复制代码的地方启用了急切执行功能,即在程序开始时调用了该位置。 您也可以这样做。希望能有所帮助。 更新:请注意,默认情况下,TensorFlow 2.0中启用了急切执行。因此,以上答案仅适用于TensorFlow