问题标签 [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.
python - use_for_related_fields 如何在 Django 中工作?
我无法从文档中掌握这一点。我完全不清楚,更具体地说:
- 是全局设置吗?因此,如果我在其中一个模型管理器上指定此属性,它会被所有模型类全局使用吗?
- 如果它不是全局设置,那么究竟哪些关系会受到影响?
- 是否可以让一个模型经理负责一个关系,另一个负责同一模型的另一个关系?
最重要的是,我将不胜感激任何好的最小示例用法,因为文档缺少那些 afaik。谢谢。
python - 帮助创建自定义创建和自定义获取方法
我有两个这样的模型:
我想在Session
模型中编写两个自定义创建方法,所以当我写这个时:
...我在表中获得了一条新记录,其中Session
包含该访问者的下一个连续序列号,即 3。这是一些示例数据
另一个是在模型中编写自定义 get 方法,Session
以便我编写:
...我得到了该访问者的先前记录,具有最高的序列号。这是一些示例数据
你能告诉我如何做到这一点吗?此代码应该在模型中还是管理器中?
谢谢大家。
django - django 软删除不会级联删除
我在我的 django 管理员中使用软删除,就像这样。问题是当我删除一个外键项目时,它似乎并没有触发它链接到的所有项目的删除。或者它可能会,但它没有运行我在我的模型上拥有的自定义def delete 。
- 如果我删除一个人,那么他们将被软删除,但相关帐户保持不变。
- 如果我删除软删除,那么当我删除一个人时,帐户也会被删除,这是正确的。
因此,理想情况下,当我删除一个人时,我希望它软删除该人,并且引用该人的帐户也被软删除(将它们标记为非活动)。
更新:我已经更新了这个问题。我没有说我在 Person 模型上运行软删除。还补充说,当 def 删除未被覆盖时,级联删除工作,但是当我覆盖删除时,级联不会触发。
python - Django Manager 的顺序会影响哪些功能?
所以,我已经阅读了大部分文档,并且我一直在四处寻找,但我找不到我的问题的答案。我将从代码开始。
所以,当我在玩的时候,我注意到如果我这样写并使用get_object_or_404()
,那么它将使用ActiveManager
来首先搜索所有活动记录,然后返回与我的查询相关的记录。但是,如果我切换了经理的顺序:
然后它使用默认管理器(在这种情况下all_objects
)进行查询。我想知道此更改会影响哪些其他功能。
编辑:我知道在类中找到的第一个管理器成为默认管理器,但我想知道哪些特定功能使用这个默认管理器(如get_object_or_404
)
django - auth_user 的自定义模型管理器
我想在 authuser
模型中包含两个额外的管理器,active
并且inactive
,给我只是活跃的用户,或者只是非活跃的用户。这就是模型的外观(即使它无效):
我将把它放在哪里/如何准确地进行查询,例如User.inactive.all()
?谢谢你。
python - 从管理器返回自定义模型实例
我有一个看起来像这样的模型,并将数据存储为键值对。
我在这个模型上有一个自定义管理器,它覆盖了该get
方法。当查询我的 Model likeSettings.objects.get(company=1)
时,我使用我的重写get
方法来执行self.objects.filter(company=1)
返回对象列表的 a。我可以生成一个将所有键值对作为字段的自定义 QuerySet。
例子:
如果我的模型中的数据是这样的:
我想返回一个查询集,当有人执行时会像这样旋转Settings.objects.get(company=1)
:
我试图变得冗长,但如果我应该更好地解释,请告诉我。我不确定 Django 模型是否允许这种情况。
谢谢大家。
编辑:使用代理模型
这是我可以使用代理模型完成的事情,即有一个基本模型来存储键值字段和自定义代理模型与正常get
和save
方法吗?
django - 如何在链查询中使用自定义管理器?
我做了一个自定义管理器,它必须随机化我的查询:
当我首先使用经理中定义的方法时,它可以正常工作:
我需要随机化已经过滤的查询。当我尝试使用管理器和链中的方法时,出现错误:
过滤的结果不是模型类的实例,而是django.db.models.query.QuerySet
,所以分别没有我的管理器和方法。
有没有办法在链查询中使用自定义管理器?
python - 如何在自定义类管理器的方法中获取上一次查询返回的数据?
我用可链接的方法开发了一个自定义管理器类。有问题。我需要随机化过滤的查询。要获得随机记录,我需要计数过滤和不同的记录。但我不知道如何得到它。相反,我对所有记录进行了计数。
使用:
迟早我会收到一个错误,因为该计数超过了当前查询中的记录数。
django - 如何将自定义管理器与相关对象一起使用?
我有一个自定义管理器。我想将它用于相关对象。我在文档中找到 了 use_for_related_fields。但它不像我使用它的方式工作:
我将它用于一个模型:
并尝试对 m2m 相关对象做同样的事情:
出现错误:
是否可以像我一样使用自定义管理器?如果是这样,你如何使它工作?
编辑
我的模型:
django - Django 自定义模型管理器
我对使用 Django 自定义模型管理器的正确方法感到困惑 - 基于文档,您可以为一个模型创建一系列管理器作为过滤方式。但是为什么不创建一个具有一系列过滤功能的管理器类呢?一种方法比另一种更好吗?为什么?
例如:
相对