问题标签 [django-select-related]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6711 浏览

django - DJANGO:如何根据相关模型的属性对对象进行排序?

我有一个 User 模型和 UserProfile 模型。在用户模型中,我想对我的查询进行排序,使其按姓氏的字母顺序排列。然后我想通过 User_profiles 的“title”属性(经理、主管、会计师等)对其进行排序。

楷模:

看法:

“Title”不是 User 模型的属性,而是通过 UserProfile 模型与 User 相关联。如何按字母顺序对 UserProfile.title 进行排序?

0 投票
2 回答
2131 浏览

django - select_related() 与 filter() + Q()

如何获取 A 实例,通过其参数与一些 B 实例链接。我尝试这样做:

没有错误:«Cannot resolve keyword 'object_id' into field。» 我可以通过链接 B 获得 A 什么?

谢谢!

[PS] 现在这个工作,但不完全是它应该:

0 投票
1 回答
1424 浏览

django - 在 Django 中使用用户配置文件检索用户的最有效方法

在 Django 中,在推荐的设置中,UserProfile 实例通过 OneToOneField 与其 User 实例链接。

在视图中检索用户和个人资料的最有效方法是什么?我可以执行 select_related() 内部联接查询,以通过一次数据库命中来获取两个对象吗?还是总是归结为两个单独的电话?可能,Django 的身份验证中间件甚至在调用视图之前检索用户实例......有人知道吗?

0 投票
1 回答
1427 浏览

django - Django:在基于类的视图中更正 select_related

嗨 Stackoverflow 人,

我在 Django 中遇到了一个与 select_related 查询有关的奇怪问题。我已经安装了django-cities 应用程序,它列出了大量城市的地理信息。在我的项目模型中,我为 city 元素创建了一个外键,以将位置存储在我的models.py 中

由于可能的城市数量众多,我在基于类的视图中创建了一个查询,该查询在创建项目对象时选择相关的城市字段。

但是,当我请求 ProjectCreate 类时,Django 仍然从数据库中提取无数外键。记录器显示无限数量的以下请求。

...调试(0.000)选择“cities_region”。“id”,“cities_region”。“name”,“cities_region”。“slug”,“cities_region”。“name_std”,“cities_region”。“code”,“cities_region” "."country_id" FROM "cities_region" WHERE "cities_region"."id" = 3861887 ; args=(3861887,) DEBUG (0.000) SELECT "cities_country"."id", "cities_country"."name", "cities_country"."slug", "cities_country"."code", "cities_country"."population" , "cities_country"."continent", "cities_country"."tld" FROM "cities_country" WHERE "cities_country"."id" = 3865483 ;

执行 ProjectCreate 类时如何强制选择相关方法?

感谢您的帮助和建议!

0 投票
1 回答
785 浏览

django - Django 管理员更改列表优化查询:选择 field1,field2 而不是 select *

我有一个很大的水平表(30 个字段),有很多外键(每个平均最多 10 个字段)。在 Django admin 中显示表格时,我使用 select related 来优化和避免多次查询。我正在寻找的是确保只检索我的 list_display 条目,而不是所有 30 个字段 +(外键 X 10)字段。目前,表上的 select * + 所有连接字段上的 select * 都运行。基本上,一种在 Django 管理员级别获取“值”的方法。谢谢。

编辑:下面的一个例子:

我的问题是,当我查看生成的查询以显示此内容时,它在 X(x1 到 x30) 上执行 select *,并使用 select_related,它提取 y1 到 y10 和 z1 到 z10,即使我不需要所有字段。

该表被大量用作 CRM,并且由于生成的查询速度较慢,因此目前它是一个热门话题。还有blob和巨大的varchars,它们不用于显示,仍在查询中。

谢谢。

0 投票
3 回答
19029 浏览

django - django select_related 用于多个外键

select_related 如何与具有多个外键的模型一起使用?它只是选择第一个吗?

类模型:fkey1、fkey2、fkey3...

文档没有说明这一点,至少没有在指定方法的地方说明。

注意:也许我是唯一会感到困惑的人。我猜 select_related 只是一个性能提升器(我可以看到),但我错误地认为它是别的东西。

0 投票
0 回答
1645 浏览

python - 使用 prefetch_related 计数注释

编辑:以下两个片段实际上运行良好,没有错误!这是我代码库中其他地方的错字。

有没有办法编写 ORM 调用,以便我可以获得 ManyToMany 对象的计数注释并 prefetch_related 那些对象?

例如

这会引发 AttributeError: 'Movie' object has no attribute 'genre_count',而

工作正常

0 投票
2 回答
289 浏览

django - 使用 Django 的 selected_related,但仍然导致额外的数据库命中

我有一个UserProfile带有OneToOneFieldto的模型auth.models.User。我也有一个Image带有ForeignKeyto的模型User

在我的一个观点中,我得到了一堆Image这样的 s:

后来,对于上面提取的每张图片,我都会这样做:

我原以为这不会导致另一个数据库命中,但确实如此。我究竟做错了什么?

请注意,我认为.selecte_related()它实际上是在做它的工作,因为我可以LEFT OUTER JOIN在被执行的 SQL 中看到 a:

0 投票
1 回答
88 浏览

django - 使用 select_related/prefetch_related 优化此 Django 代码的正确方法是什么?

我有两个模型和一个 ForeignKey 的简单情况:

每当我这样做{{some_image.iotd_date}}在模板中执行此操作时,都会访问数据库。

如何预取该信息?我已经尝试过.select_related('iotd')(the related_name) 但它没有用。

0 投票
1 回答
3577 浏览

python - Django select_related:如何在模板中显示相关表数据

使用时在模板中显示相关表的字段时遇到问题select_related()

这是我的模型:

这是我的看法:

我如何表示 和 中的相关字段OrdersProducts尤其是Customers在模板中。例如,我想显示Orders.invoice_number,Products.nameCustomer.customer_name来自相同的相关记录。

例如: