问题标签 [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.

0 投票
1 回答
435 浏览

django - 对于 django-model-utils,如何将 `select_subclasses()` 应用于对象的字段?

我有一些这样的模型:

是否可以用于select_subclasses()预取容器中的字段?我想做这样的事情:

以便在其各自的每个子类类型中检索每个的items相关字段。Container

0 投票
0 回答
1658 浏览

django-models - Django REST Framework 嵌套序列化程序和 select_related

我有以下设置:我正在使用 django-rest-framework 和 django-model-utils InheritanceManager 来自动获取子对象。

我的问题是select_related无法正常工作。当我调用检索操作时,我在调试工具栏中看到两个查询而不是一个。第一个是与位置表的预期内部连接。但随后对位置表有一个额外的查询:

所以我select_related用来连接表,但序列化程序以某种方式对数据库进行了额外的查询。

如果我不使用其余框架并直接获取对象,

它作为例外工作,并且只访问数据库一次。

有谁知道如何解决这个问题?

0 投票
1 回答
1070 浏览

python - 为什么 Django 一直询问内容类型是否过时并且需要删除

我已经尝试了所有发现:

可以在 Django 中自动删除陈旧的内容类型吗?

删除未使用的模型,过时的内容类型提示

InvalidBasesError:无法解析 [<ModelState: 'users.GroupProxy'>] 的基础

Django Wagtail CMS 迁移:无法解析 [<ModelState: 'app.CustomPage'> 的基础

Django 使用 zinnia 迁移 - InvalidBasesError: Cannot resolve bases for [<ModelState: 'zinnia.Author'>]

所以这是我的问题:我有:

  • aComicBook有一个多对多Planche
  • aPlanche有一个多对多Bande
  • aBande有一个多对多Vignette
  • ...以及更深的三个层次(这并不重要,它始终是相同的原则)

我需要在多对多表之间添加“ importance”字段,以便能够对关系进行自定义排序。因此我创建了

  • aComicBookPlanche那是带有字段的多对多表importance
  • aPlancheBande那是带有字段的多对多表importance

在我决定重命名ComicBookBook. 从现在开始我总是收到消息django.db.migrations.state.InvalidBasesError: Cannot resolve bases for...

我什至试图删除所有的表 迁移文件夹,没有任何改变......我试图评论我的应用程序 - >很好然后取消评论并且仍然:

我快疯了。所以这就是我所做的:

  • 全新的应用
  • makemigrations然后migrate-> auth、admin、sessions、sites created 没问题
  • 复制/粘贴我的models.py 不带 admin.py.

makemigrations-> 完美:

然后migrate->完美:

然后复制/粘贴我的admin.pythen makemigrations-> 完美:

然后每次我尝试migrate它都会问我这个,无论我回答“是”还是“否”:

我该怎么做才能让他停止询问,问题是什么?

0 投票
1 回答
512 浏览

python - Django - 在管理员中覆盖默认管理器 - InheritanceManager

(这似乎是一个基于“可能已经有你答案的问题”列表的常见问题,但这些都没有帮助我。)

我有几个具有多表继承的模型。

在 admin(以及后来的前端应用程序)中,我需要列出基类中所有事物的列表,并且还需要能够识别它们属于哪个子(或孙)类。

我正在尝试为此使用继承管理器。到目前为止没有运气。

添加字符串“person”和“Entry”只是一个测试。

实体列表只是显示Entry,即使也是(实际上)一个人。

我希望能够写出Entry.__str__能显示最终子类的东西。这样我就可以获得条目列表并查看:

0 投票
2 回答
1212 浏览

python - Django-model-utils 按子类过滤

我正在使用django-model-utils继承管理器来查询具有多表继承的数据模型,它大多工作得很好!当我想.select_subclasses()过滤特定子类时,效果不佳的地方。例如:

我希望能够只获取Cucumber与特定对象相关的所有对象,Salad而无需任何Carrot对象。不幸的是,文档似乎没有解释这一点。我最好的选择是在保存任何可用于“常规”过滤的蔬菜对象时在我设置type的类上创建一个字段?Vegetable提前致谢!

0 投票
1 回答
4388 浏览

python - Django 如何使用 Django 模型工具按子类过滤查询集?

我将 django-model-utils 用于继承管理器。我想一次只得到一个子类的结果。

管理者.py

模型.py

我想只返回图像类型的结果。通过编写这样一个更简单的查询。

我试过的:

这可行,但有点反模式,我不想在视图中为每种内容类型编写条件。

有没有更好的方法,比如在模型中定义属性或将其转换为管理器方法?还是我错过了什么?

0 投票
1 回答
12262 浏览

python - 没有名为“model_utils”的模块

我正在使用 Python 3.4.3 和 django 1.9.8。

在我的models.py中,我有

从 model_utils.managers 导入 InheritanceManager

但是会出现这个错误:

ImportError:没有名为“model_utils”的模块

0 投票
1 回答
127 浏览

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)。任何人都可以用正确的语法阐明吗?

0 投票
1 回答
110 浏览

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(每页项目),我得到的正是我数据库中的故事数量。

0 投票
1 回答
946 浏览

python - 在Django的多表继承中访问子模型类属性

我试图在模板中迭代子模型实例的属性,特别是我只想访问子属性。在运行时,我不知道它是什么具体的子类。使用django-model-utils我已经能够返回子类而不是父类,这是一个开始,但是当我访问它的属性时,我得到了父类和子类返回

视图.py

模板