【发布时间】:2012-02-17 20:53:20
【问题描述】:
我想从实例化的基础模型类中获取派生模型类实例。
我有以下模型类层次结构:
class AlfrescoPFCModel(models.Model):
#some fields and methods
class Meta:
abstract = True
class Contenido(AlfrescoPFCModel):
#some fields and methods
class Proyecto(Contenido):
#some fields and methods
class ProyectoCalificado(Proyecto):
#some fields and methods
class ProyectoArchivado(ProyectoCalificado):
#some fields and methods
我以这种方式实例化一个 Proyecto 类:
proyecto = proyecto_form.save(commit=False)
#do some stuff with some fields that dont appear on the form
proyecto.save
在另一个视图中,我尝试从之前实例化并保存在数据库中的基类 Proyecto 访问派生类 ProyectoCalificado:
pc = ProyectoCalificado.objects.get(pk=id)
我得到:ProyectoCalificado 匹配查询不存在。
我也试过了:
p = get_object_or_404(Proyecto, id=id)
pc = p.proyectocalificado
但它在第二行得到同样的错误。
阅读文档我应该被允许这样做: #multi-table-inheritance
我想做的是按照以下工作流程逐步完成与 Proyecto(项目)关联的数据:Proyecto -> ProyectoCalificado -> ProyectoArchivado。 每个步骤我有 3 种不同的表格。我需要 3 个不同的模型,因为我需要将它们保存在数据库中,而不是一次填写所有必填字段。
谢谢!
【问题讨论】:
标签: django inheritance models base