问题标签 [django-polymorphic]
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-polymorphic 按子类型过滤
我有如下模型结构:
现在,我想选择所有 MyObjects,哪个组的类型为 SpecialGroup。
是否可以在不运行原始 SQL 的情况下使用 QuerySet API 来实现?我想出的唯一可行的解决方案是使用 .extra() 运行额外的“选择”SQL 查询。
在此先感谢,干杯!
python - 如何从通过 PolymorphicChildModelAdmin 创建的表单中排除字段
玩弄多态和其他插件我想知道如何防止某些基类字段显示在子管理界面的表单中。为我的孩子班级提供这个 adminy.py:
这个 admin.py 用于基本模型:
现在 admin 中的表单显示了基类和子类的所有文件。我尝试为子类添加 exclude = list() 但这不起作用(没有变化)。
python - 使用 Django 多态模型生成 HTML
我可以根据 DJANGO-POLYMORPHIC 模型动态生成 HTML 吗?我想从表中读取所有行并根据类类型生成 div。或者这是不好的做法?
django - 更改 django 模型实例的多态内容类型
如果我有一个多态模型:
和一个没有额外字段的继承者类:
当我有一个父亲实例时,如何将其转换为子实例?
我尝试过的是:
但没有任何改变。我希望foo成为 Child 对象,并且需要将其放入子数据库表中。
python - Django 迁移/Django 多态上的 AttributeError
我正在尝试更新我的应用程序以使用django-polymorphic
. 在尝试进行迁移时,我遇到了一个我不太了解的错误。我刚刚改为DashableModel
继承自PolymorphicModel
而不是,models.Model
我不知道如何处理这个错误。
模型.py
python - 根据与 django 多态模型的子类的关系过滤普通模型?
我有一个普通的 Django 模型,它与 django 多态模型有 ForeignKey 关系。
让我们将PlainModel
具有content
ForeignKey 字段的第一个称为具有子类型和的多态Content
模型(简化示例)。Video
Audio
现在我想查询所有PlainModel
引用Video
.
问题是我找到的所有文档都是关于直接通过多态模型本身进行过滤的。所以在这个例子中类似于Content.objects.instance_of(Video)
. 但我需要PlainModel
's,所以它需要看起来像PlainModel.objects.filter(content__instance_of=Video)
. 我尝试了很多变体,但找不到任何有效的方法。
在他们使用的文档中Q(instance_of=ModelB)
,但这不适用于关系 as Q(content__instance_of=ModelB)
。它给出了一个错误,如“无法查询“x”:必须是“y”实例。即使有翻译调用,我猜是因为 PlainModel 不具备多态意识。
我有一个临时 hack,它polymorphic_ctype
使用常规的 django 过滤器直接在字段上过滤PlainModel.objects.filter(content__polymorphic_ctype_id=my_content_type_id)
,但这不处理子类。例如:ExtendedVideo
在查找时找不到Video
,因为它会有不同的 ContentType id。
我可以解决这个问题并保留允许的子类型列表或解析类型层次结构以获得更多过滤器的内容类型,但这似乎与 django-polymorphic 的功能重复。
python - 异常值:“PolymorphicModelBase”类型的对象没有 len()
我正在将现有的模型/管理员转换为 django-polymorphic。我想我已经成功完成了模型和迁移(至少,它在 shell 中工作),但我无法让管理员工作。我发现文档有点模糊,但我认为我正确地遵循了它。
我不明白这个问题:
python - Django 多态
我想使用继承来实现模型,我找到了这个包django-polymorphic
。但是我正在阅读有关 django 模型中的继承的内容,并且几乎在我发现他们推荐abstract = True
在父模型中使用的每一页上。这将复制子类的字段,从而使查询更快。
我做了一些测试,发现这个库没有使用抽象变量:
父表:
我应该使用我自己的使用抽象字段的类还是应该坚持这个?
python - 在 Django 模型中重新组合多重继承
一直在使用 Django Polymorphic 来帮助我处理 Django 模型中的复杂继承模式。
我遇到了一个问题,我需要有一个具体的基础模型(因为它本身需要一个 ForeignKey),然后有多个模型从它继承,最终一些模型从其中的多个继承。问题是我收到 E005 错误:
app.NamedWeightedModel:(models.E005)父模型“app.namedmodel”中的字段“basemodel_ptr”与父模型“app.massmodel”中的字段“basemodel_ptr”发生冲突。
触发此操作的简单示例如下所示:
有没有更好的方法来处理这个?还是标准方法?
我的真实模型要复杂得多(UML 规范的实现),我希望能够使用多重继承(理想情况下通过多态)使事情变得更容易。
我考虑过让任何多重继承模型成为单继承,所有其他继承模型都映射为 OneToOneFields,但这否定了多态的一些好处。
您能提供的任何帮助将不胜感激。
django - django-多态树序列化器
我想用相应的字段序列化我的 PolymorphicMPTTModel 中的所有节点。按照文档 django-polymorphic 和 django-mptt 我得到这个:
结构很好,但缺少孩子们的领域。