首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django:模型继承: FK & M2M

Django:模型继承: FK & M2M
EN

Stack Overflow用户
提问于 2010-10-18 00:04:04
回答 2查看 1.1K关注 0票数 3

我试着这么做:http://docs.djangoproject.com/en/dev/topics/db/models/#be-careful-with-related-name

使用这种风格

这被保存为公共/抽象. is

代码语言:javascript
复制
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叫做

代码语言:javascript
复制
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的关系

请告诉我..。如果你有任何问题或者不明白我正在解释的东西,请告诉我。我处理的文件非常复杂,所以我不想发布全部内容,因为我知道它正在破坏这一段关系。

EN

Stack Overflow用户

发布于 2010-10-18 00:45:41

您不能与抽象模型建立关系,但这就是您要做的事情(ManyToManyFieldOtherModel)。如果您想使此工作,您需要删除abstract = TrueOtherModel和添加common到您的INSTALLED_APPS

如果您想要从OtherModel的子类中关联到Base的不同子类,则需要在子类上定义关系,而不是在抽象模型上!

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3955875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档