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

问题描述 投票:3回答:2

我正在为我的模型使用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\nThis can happen if you are inheriting models from an app with migrations (e.g. contrib.auth)\n 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 makemigrations
2个回答
5
投票

这与我猜的多态包无关。

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


4
投票

你也可以试试这个:

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)如果您是幸运的话,可以单独或整体迁移任何其他应用程序。

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

© www.soinside.com 2019 - 2024. All rights reserved.