vi的Django多态性

2024-05-13 08:02:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下模型,使用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)


Tags: 对象django模型视图forinputmodelobjects
1条回答
网友
1楼 · 发布于 2024-05-13 08:02:52
class Connection(models.Model):
    input = BaseInput()

您需要将input更改为models.ForeignKey(BaseInput)。这样,input被添加为Connection模型上的数据库字段,而不仅仅是作为类的属性。在

相关问题 更多 >