问题标签 [django-orm]

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 投票
2 回答
2699 浏览

python - 如何在 Django 中为模型获取具有反向关系的所有类的集合?

鉴于:

仅给定 Food 类,如何获得与它具有“反向关系”的所有类的集合。即给定类Food,如何获得CatCowHuman类。

我认为这是可能的,因为 Food 具有三个“反向关系”:Food.cat_setFood.cow_setFood.human_set

感谢您的帮助,谢谢!

0 投票
1 回答
4947 浏览

django - Django - 带有伴随存储字段的自定义虚拟模型字段

我想要一个ConfirmationField字段类型。我希望这个字段像布尔字段一样工作。我不需要将此信息存储在数据库中,而是希望将确认日期存储在单独的字段中。

我需要将这两个字段都作为Field实例,例如,我需要能够在 Admin 中使用它们。

我已阅读文档并检查代码,ForeignKey使用以下代码更改其数据库列名称:

但是我无法确切地弄清楚如何使用其余代码作为示例。看来我的目标不需要太复杂。

保存模型时,我还发现ImageField了保存的额外信息:

但我当然不希望confirmation自己存储在数据库中。confirmation_timestamp由于 ( -> confirmation) None==False<datetime instance>== ,我会造成冗余True

任何指针/想法表示赞赏。

谢谢。

编辑:目前看来这是不可能的。我最终改变了我的 API。这是一个snipplet,可以说明我是如何做到的:

您可以拥有上述任何类型的确认字段,并设置正确的值。确认检查可以用bool(getattr(instance, field_name).

0 投票
2 回答
1590 浏览

django - Django ORM:获取满足特定条件的最新先前对象

给定一个像这样的对象:

给定样本数据(假设单调递增的自动 created_date):

如果给定 Y,是否可以使用 Django ORM 创建一个返回 X 的查询(上一个查询,按日期,其中 'test'=True)?如果是这样,怎么做?

换句话说:给定 Y,如何获得“test”为 True 的最近的先前元素?

感谢您的想法和反馈,谢谢!

0 投票
3 回答
3476 浏览

python - Django:默认执行不区分大小写的查找

username使用 Django Auth 框架时,我需要默认执行不区分大小写的查询。

我尝试通过编写自定义子类Queryset 并覆盖该_filter_or_exclude方法,然后在用户模型的自定义管理器中使用该子类来解决该问题-

但是这种方法不起作用,当我尝试做User.objects.get(username='Foo').

任何帮助,将不胜感激。

更新:我包括了我得到的确切错误。

更新:顺便说一句,我只想提一下,当我将_filter_or_exclude方法中的逻辑复制到实际QuerySet类中时,它可以完美运行。

0 投票
2 回答
4983 浏览

python - 如何使用 Django ORM 查询这个多对多示例?

我有以下型号:

话虽如此,我正在尝试使用 Django ORM 模拟此查询(选择特定作者撰写的所有书籍,注意作者可以有很多书,而书籍可以有很多作者):

我已经阅读了 Django 网站上的这个 FAQ 页面,但是在我修改我的模型结构并删除 AuthorBook 之前,我很好奇是否可以使用当前结构模拟该查询。

0 投票
1 回答
1939 浏览

django - 帮助在 Django 中删除 reconds

如何删除关系表中的条目。在这种情况下,我在组和用户之间有多对多的关系。上述代码中的 delete 语句将组从 Groups 表中删除。我只想从 Users_group 表中删除用户和组之间的关系。我该怎么做呢。

谢谢

0 投票
2 回答
3331 浏览

django - Django ORM:缓存和操作 ForeignKey 对象

考虑以下用于太空征服游戏的 models.py 框架:

对于我正在处理的项目,我有许多这样的数据模型,并且我根据各种数据对象之间有些复杂的交互来更改游戏的状态。我想避免对数据库进行大量不必要的调用,所以每回合一次,我会做类似的事情

  1. 从数据库中查询所有舰队、行星和其他对象,并将它们缓存为 python 对象
  2. 处理游戏对象,解析游戏状态
  3. 将它们保存回数据库

当使用 ForeignKey 对象时,这个模型似乎完全崩溃了。例如,当一个新舰队离开一个星球时,我有一条看起来像这样的线:

在这条线运行之后,我有其他代码可以改变每个行星上的船只数量,包括行星fleet.home。不幸的是,上一行所做的更改并没有反映在我之前获得的行星查询集中,因此当我在回合结束时保存所有行星时,对舰队.home 的船只的更改会被覆盖。

有没有更好的方法来处理这种情况?或者这就是所有 ORM 的样子?

0 投票
2 回答
7195 浏览

django - 如何在 django 中使用过滤器

类状态(models.Model): someid = models.IntegerField() value = models.IntegerField() status_msg = models.CharField(max_length = 2000)

所以我必须获取一些值之间包含一个给定的 someid 的值。所以说

所以我的最终结果应该是包含 id = 20 的 2 个条目的列表,如何实现这一点。

我尝试使用

哪个是错的?如何解决这个问题。

谢谢。

0 投票
1 回答
1292 浏览

python - Django ORM Query 以限制特定键实例

Projectfundingdetail 具有项目的外键。

以下查询为我提供了任何projectfundingdetail 低于 1000 的所有项目的列表。如何将其限制为仅最新的 projectfundingdetail。

我已经定义了以下功能,

但我不能使用以下内容,因为latest_funding它不是数据库字段

那么我应该使用什么查询来获取所有只有其最新 projectfundingdetail 低于 1000 的项目。

0 投票
1 回答
2088 浏览

sql - 使用 Django ORM 根据最大​​值获取单个子行

我有一个模型“市场”,它与另一个模型“合同”有一对多的关系:

我想获取 Market 对象以及每个合约的最高价格。这就是我通过原始 SQL 执行此操作的方式:

有没有办法在不使用 SQL 的情况下实现这一点?如果有,在性能方面应该首选哪一个?