问题标签 [django-model-utils]
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.
django - 对于 django-model-utils,如何将 `select_subclasses()` 应用于对象的字段?
我有一些这样的模型:
是否可以用于select_subclasses()
预取容器中的字段?我想做这样的事情:
以便在其各自的每个子类类型中检索每个的items
相关字段。Container
django-models - Django REST Framework 嵌套序列化程序和 select_related
我有以下设置:我正在使用 django-rest-framework 和 django-model-utils InheritanceManager 来自动获取子对象。
我的问题是select_related
无法正常工作。当我调用检索操作时,我在调试工具栏中看到两个查询而不是一个。第一个是与位置表的预期内部连接。但随后对位置表有一个额外的查询:
所以我select_related
用来连接表,但序列化程序以某种方式对数据库进行了额外的查询。
如果我不使用其余框架并直接获取对象,
它作为例外工作,并且只访问数据库一次。
有谁知道如何解决这个问题?
python - 为什么 Django 一直询问内容类型是否过时并且需要删除
我已经尝试了所有发现:
InvalidBasesError:无法解析 [<ModelState: 'users.GroupProxy'>] 的基础
Django Wagtail CMS 迁移:无法解析 [<ModelState: 'app.CustomPage'> 的基础
Django 使用 zinnia 迁移 - InvalidBasesError: Cannot resolve bases for [<ModelState: 'zinnia.Author'>]
所以这是我的问题:我有:
- a
ComicBook
有一个多对多Planche
的 - a
Planche
有一个多对多Bande
的 - a
Bande
有一个多对多Vignette
的 - ...以及更深的三个层次(这并不重要,它始终是相同的原则)
我需要在多对多表之间添加“ importance
”字段,以便能够对关系进行自定义排序。因此我创建了
- a
ComicBookPlanche
那是带有字段的多对多表importance
- a
PlancheBande
那是带有字段的多对多表importance
在我决定重命名ComicBook
为Book
. 从现在开始我总是收到消息django.db.migrations.state.InvalidBasesError: Cannot resolve bases for...
我什至试图删除所有的表 和 迁移文件夹,没有任何改变......我试图评论我的应用程序 - >很好然后取消评论并且仍然:
我快疯了。所以这就是我所做的:
- 全新的应用
makemigrations
然后migrate
-> auth、admin、sessions、sites created 没问题- 复制/粘贴我的
models.py
不带admin.py
.
makemigrations
-> 完美:
然后migrate
->完美:
然后复制/粘贴我的admin.py
then makemigrations
-> 完美:
然后每次我尝试migrate
它都会问我这个,无论我回答“是”还是“否”:
我该怎么做才能让他停止询问,问题是什么?
python - Django - 在管理员中覆盖默认管理器 - InheritanceManager
(这似乎是一个基于“可能已经有你答案的问题”列表的常见问题,但这些都没有帮助我。)
我有几个具有多表继承的模型。
在 admin(以及后来的前端应用程序)中,我需要列出基类中所有事物的列表,并且还需要能够识别它们属于哪个子(或孙)类。
我正在尝试为此使用继承管理器。到目前为止没有运气。
添加字符串“person”和“Entry”只是一个测试。
实体列表只是显示Entry
,即使也是(实际上)一个人。
我希望能够写出Entry.__str__
能显示最终子类的东西。这样我就可以获得条目列表并查看:
python - Django-model-utils 按子类过滤
我正在使用django-model-utils继承管理器来查询具有多表继承的数据模型,它大多工作得很好!当我想.select_subclasses()
过滤特定子类时,效果不佳的地方。例如:
我希望能够只获取Cucumber
与特定对象相关的所有对象,Salad
而无需任何Carrot
对象。不幸的是,文档似乎没有解释这一点。我最好的选择是在保存任何可用于“常规”过滤的蔬菜对象时在我设置type
的类上创建一个字段?Vegetable
提前致谢!
python - Django 如何使用 Django 模型工具按子类过滤查询集?
我将 django-model-utils 用于继承管理器。我想一次只得到一个子类的结果。
管理者.py
模型.py
我想只返回图像类型的结果。通过编写这样一个更简单的查询。
我试过的:
这可行,但有点反模式,我不想在视图中为每种内容类型编写条件。
有没有更好的方法,比如在模型中定义属性或将其转换为管理器方法?还是我错过了什么?
python - 没有名为“model_utils”的模块
我正在使用 Python 3.4.3 和 django 1.9.8。
在我的models.py中,我有
从 model_utils.managers 导入 InheritanceManager
但是会出现这个错误:
ImportError:没有名为“model_utils”的模块
django - 通过 django-model-utils 将自定义查询集附加到模型
我正在尝试定义一个自定义 QuerySet 子类,并使用 django-model-utils 将其附加到我的模型中。在以前的 Django 版本(我使用的是 1.9)中,PassThroughManager 用于通过以下代码完成此操作:
从 model_utils.managers 导入 PassThroughManager
如前所述,事实证明
PassThroughManager 在 django-model-utils 2.4 中被移除。请改用 Django 的内置 QuerySet.as_manager() 和/或 Manager.from_queryset() 实用程序。
我试图重写代码(对不起,如果它看起来太愚蠢,我有几个月的经验仍然盲目地做一些思考以满足最后期限)
至于现在,我结束了TypeError: as_manager() takes exactly 1 argument (2 given)
。任何人都可以用正确的语法阐明吗?
python - Django保存随机行为
我有一个与某些 Resource 对象有 M2M 关系的 Story 模型。一些 Resource 对象缺少名称,因此我想将 Story 的标题复制到分配的 Resource 对象。
这是我的代码:
我需要使用分页器,因为我正在处理一百万个对象。奇怪的是,在调用 fix_issues() 之后,我的大约一半没有名称的资源现在有了正确的名称,而另一半仍然没有名称。我可以一次又一次地调用 fix_issues() 并且每次有更多对象收到一个名称。这对我来说似乎很奇怪,为什么第一次不更新对象而只更新第二次?
附加信息:
- 永远不会打印“出现问题:”消息。
- 我正在使用 django-model-utils 中的 select_subclasses 来迭代所有资源(任何类型)。
- story.title永远不会是空的。
- 当我运行这些命令时,不会打印任何错误消息。
- 我没有重写 Resource 模型的 save 方法(只有 Story 模型的 save 方法)。
- 我尝试使用@transaction.atomic,但结果是一样的。
我的模型:
select_subclasses 的 文档:http: //django-model-utils.readthedocs.io/en/latest/managers.html#inheritancemanager
进一步调查: 我认为也许 select_subclasses 没有返回所有对象。现在每个故事都只有一个资源。因此很容易检查 select_subclasses 是否总是返回一项。这是我使用的功能:
但同样,这执行没有任何问题。所以我不认为 select_subclasses 是罪魁祸首。我还检查了 paginator.num_pages 是否正确。如果我除以 1000(每页项目),我得到的正是我数据库中的故事数量。
python - 在Django的多表继承中访问子模型类属性
我试图在模板中迭代子模型实例的属性,特别是我只想访问子属性。在运行时,我不知道它是什么具体的子类。使用django-model-utils
我已经能够返回子类而不是父类,这是一个开始,但是当我访问它的属性时,我得到了父类和子类返回:
视图.py
模板