【发布时间】:2010-10-18 00:04:04
【问题描述】:
我想这样做: http://docs.djangoproject.com/en/dev/topics/db/models/#be-careful-with-related-name
使用这种风格
这里保存为 common/abstract.py
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
然后我将它导入另一个文件。我们称之为 app/models.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 中 断言不。meta.abstract, "%s 不能定义与抽象类 %s 的关系" % (self.class._name__, to._meta.object_name) AssertionError: ForeignKey 无法定义与抽象类 OtherModel 的关系
请告知....如果您有任何问题或不理解我正在解释的内容,请告诉我。我使用的文件非常复杂,所以我不想发布整个内容,因为我知道这会破坏这种关系。
【问题讨论】:
标签: django inheritance django-models data-modeling