Python中文
首页
教程
问答
标签
搜索
登录
注册
Django formset,查询每个表单的关系字段
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>在模型.py在</p> <pre><code>class Material(BaseModelClass): material = models.CharField(max_length=25, verbose_name='Material') def __str__(self): return self.material class PurOrder(BaseModelClass): order_number = models.CharField(max_length=25) class PurOrderItem(BaseModelClass): order = models.ForeignKey(PurOrder, on_delete=models.CASCADE) material = models.ForeignKey(Material, on_delete=models.PROTECT) </code></pre> <p>我创建了一个PurOrder表单和PurOrderItem表单集</p> ^{pr2}$ <p>初始化如下。在</p> <pre><code>form = PurOrderForm(instance=order_instance) queryset = order_instance.purorderitem_set.all().select_related('material',) formset = PurOrderFormset(instance=order_instance, queryset=queryset) </code></pre> <p>如果所选purorder有20个PurOrderItem,则此设置将花费我22个查询。在</p> <ul> <li>1对于PurOrder实例</li> <li>PurOrderItem实例为1</li> <li>采购项目的选定材料为20</li> </ul> <p>想想看,如果有1000个PurOrderItem</p> <p>与所提供的select_相关,它将material添加到purderitemselect,但是当它显示它时,我想它会再次查询。在</p> <p>我使用django autocomplete light,这样可以避免查询所有的材质实例,但是它会继续查询所选的材质,即使我选择了与_相关的材质,也可以显示它。在</p> <p>理想情况下,我会选择带有预取purderItem和相关材料的purder实例,这意味着3个查询。当轮到他们时,将使用预取的purorderitem和material。在</p> <p>请给我一个避免选择查询的方法。在</p> <p>注意:我尽量避免在这里缓存。在</p> <p><strong>更新</strong></p> <p>在我提出这个问题很久之后,我尝试提供解决方案。 问题是,formset的表单彼此不知道。因此,只要queryset所选的“与”或“预取”相关的查找未传递到表单集表单。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我最近意识到类似情况下的问题并不是表单集本身,而是{{表单集.错误}}在模板中,因为每个表单集为此生成一个查询。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
文本导入时标题行中的特殊字符
9 回答
文本小部件:在没有输入时更新并在循环后保持空闲
5 回答
文本小部件tkin
2 回答
文本小部件tkinter中的标签更改或文本外观更改是否有撤消功能?
1 回答
文本小部件tkinter复制图像选项
9 回答
文本小部件上的Python Tkinter ttk滚动条未缩放
10 回答
文本小部件上的滚动条可能需要根据制表符ord显示前进行滚动
5 回答
文本小部件不显示lis中的内容
1 回答
文本小部件不显示Unicode字符
9 回答
文本小部件中写入的行间距
7 回答
文本小部件中的文本作为变量
10 回答
文本小部件中的滚动条仅显示在底部
10 回答
文本小部件中的选项卡键空间计数
2 回答
文本小部件作为Lis
3 回答
文本小部件在主框架中扩展列宽
5 回答
文本小部件未使用删除功能清除
3 回答
文本小部件滚动动画(Tkinter、Python)
6 回答
文本居中。格式正确吗?
7 回答
文本差分算法
2 回答
文本已知时音频文件中的单词索引
10 回答