使用以下INSTALLED_APPS
创建一个带有应用的Django项目(将其添加到models.py
!):
from django.db import models
class BaseTransaction(models.Model):
pass
class SubscriptionTransaction(BaseTransaction):
class Meta:
index_together = ["id", "canceled"]
canceled = models.BooleanField()
然后事情就这样起作用了:
$ python3 manage.py makemigrations
SystemCheckError: System check identified some issues:
ERRORS:
testprj.SubscriptionTransaction: (models.E016) 'index_together' refers to field 'id' which is not local to model 'SubscriptionTransaction'.
HINT: This issue may be caused by multi-table inheritance.
请解释此错误的原因(此处没有多表继承)以及如何使我的代码正常工作。
使用Python 3.5.3和Python 2.7.13的Django 1.10.3会出现问题。这是一个Django错误吗?什么是解决方法?
答案 0 :(得分:2)
您收到此错误,因为您使用的ID位于其他表中,这可能会产生很多问题。
但是如果您不需要BaseTransaction表,您可以将其标记为抽象,那么您可以完美地使用index_together。
class BaseTransaction(models.Model):
class Meta:
abstract = True