如果模型不是abstract
,是否有一种方法可以继承现有模型,以便复制其所有字段(以干方式)而不调用多表继承?在
明确地说,我有一个模型Post
,我希望有另一个模型GhostPost
,它完全按照可用字段镜像{},但我不希望它具有多个继承或与Post
的任何类型的关系。问题是,Post
不是一个抽象模型,因此Django将启动多任务继承。有办法吗?在
Update:我在这里寻找的不是Python级别的模型副本,而是一个实际的单独的数据库表,它映射这些字段。在
遵循了布兰迪的建议。在
Tags:
您可以添加一个额外的BooleanField
is_ghost
,并覆盖原始模型和代理模型上的默认管理器:这将把所有内容保存在一个表中,但是管理器和查询集的行为将像是两个单独的模型/表。在
另一个解决方案是为两个模型使用一个抽象基类。如果您不更改原始
Post
模型的类名,并从例如AbstractPost
继承,我认为这不会引起任何问题。在在这种情况下,您需要使用代理模型。它允许您扩展一个不抽象但没有多表继承的模型:https://docs.djangoproject.com/en/1.6/topics/db/models/#proxy-models
代理模型将保留一个表,因此如果每个模型需要一个表,我建议为}模型创建一个公共抽象类来继承。在
Post
和{相关问题 更多 >
编程相关推荐