问题标签 [django-managers]

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 回答
8162 浏览

python - use_for_related_fields 如何在 Django 中工作?

我无法从文档中掌握这一点。我完全不清楚,更具体地说:

  • 是全局设置吗?因此,如果我在其中一个模型管理器上指定此属性,它会被所有模型类全局使用吗?
  • 如果它不是全局设置,那么究竟哪些关系会受到影响?
  • 是否可以让一个模型经理负责一个关系,另一个负责同一模型的另一个关系?

最重要的是,我将不胜感激任何好的最小示例用法,因为文档缺少那些 afaik。谢谢。

0 投票
2 回答
113 浏览

python - 帮助创建自定义创建和自定义获取方法

我有两个这样的模型:


我想在Session模型中编写两个自定义创建方法,所以当我写这个时:

...我在表中获得了一条新记录,其中Session包含该访问者的下一个连续序列号,即 3。这是一些示例数据


另一个是在模型中编写自定义 get 方法,Session以便我编写:

...我得到了该访问者的先前记录,具有最高的序列号。这是一些示例数据


你能告诉我如何做到这一点吗?此代码应该在模型中还是管理器中?

谢谢大家。

0 投票
2 回答
6824 浏览

django - django 软删除不会级联删除

我在我的 django 管理员中使用软删除,就像这样。问题是当我删除一个外键项目时,它似乎并没有触发它链接到的所有项目的删除。或者它可能会,但它没有运行我在我的模型上拥有的自定义def delete 。

- 如果我删除一个人,那么他们将被软删除,但相关帐户保持不变。

- 如果我删除软删除,那么当我删除一个人时,帐户也会被删除,这是正确的。

因此,理想情况下,当我删除一个人时,我希望它软删除该人,并且引用该人的帐户也被软删除(将它们标记为非活动)。

更新:我已经更新了这个问题。我没有说我在 Person 模型上运行软删除。还补充说,当 def 删除未被覆盖时,级联删除工作,但是当我覆盖删除时,级联不会触发。

0 投票
2 回答
842 浏览

python - Django Manager 的顺序会影响哪些功能?

所以,我已经阅读了大部分文档,并且我一直在四处寻找,但我找不到我的问题的答案。我将从代码开始。

所以,当我在玩的时候,我注意到如果我这样写并使用get_object_or_404(),那么它将使用ActiveManager来首先搜索所有活动记录,然后返回与我的查询相关的记录。但是,如果我切换了经理的顺序:

然后它使用默认管理器(在这种情况下all_objects)进行查询。我想知道此更改会影响哪些其他功能。

编辑:我知道在类中找到的第一个管理器成为默认管理器,但我想知道哪些特定功能使用这个默认管理器(如get_object_or_404

0 投票
1 回答
264 浏览

django - auth_user 的自定义模型管理器

我想在 authuser模型中包含两个额外的管理器,active并且inactive,给我只是活跃的用户,或者只是非活跃的用户。这就是模型的外观(即使它无效):

我将把它放在哪里/如何准确地进行查询,例如User.inactive.all()?谢谢你。

0 投票
1 回答
420 浏览

python - 从管理器返回自定义模型实例

我有一个看起来像这样的模型,并将数据存储为键值对。

我在这个模型上有一个自定义管理器,它覆盖了该get方法。当查询我的 Model likeSettings.objects.get(company=1)时,我使用我的重写get方法来执行self.objects.filter(company=1)返回对象列表的 a。我可以生成一个将所有键值对作为字段的自定义 QuerySet。

例子:

如果我的模型中的数据是这样的:

我想返回一个查询集,当有人执行时会像这样旋转Settings.objects.get(company=1)

我试图变得冗长,但如果我应该更好地解释,请告诉我。我不确定 Django 模型是否允许这种情况。

谢谢大家。


编辑:使用代理模型

这是我可以使用代理模型完成的事情,即有一个基本模型来存储键值字段和自定义代理模型与正常getsave方法吗?

0 投票
5 回答
7710 浏览

django - 如何在链查询中使用自定义管理器?

我做了一个自定义管理器,它必须随机化我的查询:

当我首先使用经理中定义的方法时,它可以正常工作:

我需要随机化已经过滤的查询。当我尝试使用管理器和链中的方法时,出现错误:

过滤的结果不是模型类的实例,而是django.db.models.query.QuerySet,所以分别没有我的管理器和方法。 有没有办法在链查询中使用自定义管理器?

0 投票
1 回答
68 浏览

python - 如何在自定义类管理器的方法中获取上一次查询返回的数据?

我用可链接的方法开发了一个自定义管理器类。有问题。我需要随机化过滤的查询。要获得随机记录,我需要计数过滤和不同的记录。但我不知道如何得到它。相反,我对所有记录进行了计数。

使用:

迟早我会收到一个错误,因为该计数超过了当前查询中的记录数。

0 投票
4 回答
23940 浏览

django - 如何将自定义管理器与相关对象一起使用?

我有一个自定义管理器。我想将它用于相关对象。我在文档中找到 了 use_for_related_fields。但它不像我使用它的方式工作:

我将它用于一个模型:

并尝试对 m2m 相关对象做同样的事情:

出现错误:

是否可以像我一样使用自定义管理器?如果是这样,你如何使它工作?

编辑

我的模型:

0 投票
1 回答
15020 浏览

django - Django 自定义模型管理器

我对使用 Django 自定义模型管理器的正确方法感到困惑 - 基于文档,您可以为一个模型创建一系列管理器作为过滤方式。但是为什么不创建一个具有一系列过滤功能的管理器类呢?一种方法比另一种更好吗?为什么?

例如:

相对