我试着这么做:http://docs.djangoproject.com/en/dev/topics/db/models/#be-careful-with-related-name
使用这种风格
这被保存为公共/抽象. is
class OtherModel(models.Model):
something = Charfield(max_length=100)
class Meta:
abstract = True
class Base(models.Model):
fk_model = models.ForeignKey(OtherModel, related_name="%(app_label)s_%(class)s_related")
class Meta:
abstract = True然后将其导入另一个文件。让我们把这个应用程序/models.py s.py叫做
from common.abstract import Base
class ChildB(Base):
pass我已经安装了‘应用’,但没有‘普通’。它将很好地导入,而不需要FK或M2M关系,但是当我尝试添加它时,我会得到以下错误:
/lib/python2.6/site-packages/django/db/models/fields/related.py",第808行,在init assert not to.meta.abstract中,"%s不能使用抽象类%s“% (self.class._name__,to._meta.object_name定义关系) AssertionError: ForeignKey不能定义与抽象类OtherModel的关系
请告诉我..。如果你有任何问题或者不明白我正在解释的东西,请告诉我。我处理的文件非常复杂,所以我不想发布全部内容,因为我知道它正在破坏这一段关系。
发布于 2010-10-18 00:45:41
您不能与抽象模型建立关系,但这就是您要做的事情(ManyToManyField到OtherModel)。如果您想使此工作,您需要删除abstract = True从OtherModel和添加common到您的INSTALLED_APPS!
如果您想要从OtherModel的子类中关联到Base的不同子类,则需要在子类上定义关系,而不是在抽象模型上!
https://stackoverflow.com/questions/3955875
复制相似问题