Django-多态模型在1.7上进行迁移时遇到问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django-多态模型在1.7上进行迁移时遇到问题相关的知识,希望对你有一定的参考价值。

我正在为我的模型使用Django 1.7和django-polymorphic

class ReferenceItem(PolymorphicModel):
    created_at = models.DateTimeField(_('date created'), auto_now_add=True, db_index=True)
    updated_at = models.DateTimeField(_('date modified'), auto_now=True, db_index=True)
    uuid = UUIDField(auto=True, unique=True)
    description = models.CharField(max_length=255)

class OrderItem(ReferenceItem):
    order = models.ForeignKey('Order', related_name='items')
    sku = models.CharField(max_length=255)
    quantity = models.IntegerField()
    unit_price = models.DecimalField(max_digits=10, decimal_places=2)
    amount = models.DecimalField(max_digits=10, decimal_places=2)
    tax_rate = models.DecimalField(max_digits=3, decimal_places=2)
    commission_rate = models.DecimalField(max_digits=3, decimal_places=2)

当我运行makemigrations时出现此错误:

raise InvalidBasesError("Cannot resolve bases for %r
This can happen if you are inheriting models from an app with migrations (e.g. contrib.auth)
 in an app with no migrations; see https://docs.djangoproject.com/en/1.7/topics/migrations/#dependencies for more" % new_unrendered_models)
django.db.migrations.state.InvalidBasesError: Cannot resolve bases for [<ModelState: 'orders.OrderItem'>]
This can happen if you are inheriting models from an app with migrations (e.g. contrib.auth)

我已经通过django ticket但仍然没有意识到问题是什么。

答案

这与我猜的多态包无关。

我所做的就是注释掉我的应用程序,离开内置的django应用程序,运行./manage.py migrate来迁移系统应用程序,然后取消注释我的应用程序,然后运行./manage.py makemigrations

另一答案

你也可以试试这个:

1)将migrations目录添加到有问题的应用程序(在本例中为orders)。

mkdir /path/to/your/app/migrations

2)将__init__.py添加到同一个迁移目录。

touch /path/to/your/app/migrations/__init__.py

3)运行python manage.py makemigrations <yourapp>

4)如果您是幸运的话,可以单独或整体迁移任何其他应用程序。

这应该解决它。与依赖于评论任何已安装的应用程序相比,它更不容易出错,而且非常糟糕,这些应用程序并不真正一致或可重现。

以上是关于Django-多态模型在1.7上进行迁移时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

具有默认值的外键上的 Django 1.7 迁移错误

在 Django 1.7 迁移中调用 loaddata 会抛出“‘字段列表’中的未知列‘[字段]’”

在迁移中获取模型 ContentType - Django 1.7

Django 1.7 内置迁移与南迁移?

Django 1.7 - makemigrations 为非托管模型创建迁移

Django 1.7 迁移挂起