Django:如何删除代理模型并将其值转换为超类型

时间:2014-05-14 13:56:57

标签: django

我在django中使用代理模型,如下所示:

class A:
    ...

class B(A):
    class Meta:
        proxy = True

现在我要删除B模型,并将其值(表行)转换为A类型。 由于代理模型使用与其父项相同的表,并且我的代理模型中没有额外的字段,因此不必触摸模型表本身。

我删除了模型(代码)并从django_content_type删除了相应的行,但是django必须在其他地方存储关于哪个行是哪种类型的信息,A或B.插入的行为B类型,仍然不会显示为A类型。

我正在使用南方。 最佳解决方案是将其添加为迁移,但并非绝对必要。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

除了删除内容类型之外,您不需要执行任何操作。 Proxy models根本不在数据库中单独表示(内容类型除外)。代理模型基本上只是帮助做一些事情,比如添加不同的默认管理器,更改排序等等。

您还可以运行django-admin.py schemamigration <appname> --auto来验证没有任何更改(南方在进行迁移时甚至不考虑代理模型)。