我有以下模型,使用Django多态性:
class Connection(models.Model):
input = BaseInput()
class BaseInput(PolymorphicModel):
pass
class ChildInput(BaseInput):
name = 'child'
使用python控制台,执行BaseInput.objects.all由于Django Polymorphic,()很好地自动解析为ChildInput。在
但是在视图中,.html文件中,我使用for循环Connection.objects.all()(在上下文中给出)。如果我尝试访问ChildInput对象,如下所示:
^{pr2}$(其中c是for循环中的连接) 它解析为“BaseInput对象”。在
所以多态性在python解释器中起作用,但在视图中不起作用。在
有什么想法吗?在
(Python3.4.1,Django 1.7.3,Django多态0.6.1)
您需要将
input
更改为models.ForeignKey(BaseInput)
。这样,input
被添加为Connection
模型上的数据库字段,而不仅仅是作为类的属性。在相关问题 更多 >
编程相关推荐