我正在为我的模型使用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应用程序,运行./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)如果您是幸运的话,可以单独或整体迁移任何其他应用程序。
这应该解决它。与依赖于评论任何已安装的应用程序相比,它更不容易出错,而且非常糟糕,这些应用程序并不真正一致或可重现。