问题标签 [django-inheritance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
22527 浏览

python - Django 模板:通过扩展模板覆盖包含的子模板块

我想知道是否有人知道如何处理以下古怪的模板结构:



而且,问题的核心:


问题是在扩展模板时,您只能覆盖在父级中声明的块,而不是它的任何子级。

我想我可以使 base.html 成为一个空的未使用的嵌套块的外壳,涵盖所有未来的意外情况,但即使这样也能正确覆盖吗?这是唯一的方法吗?

如果您想知道为什么我有一个围绕 base.html 的双向包含/扩展工作流,我有许多子模板希望在整个项目中使用:页眉、页脚、导航、侧边栏等。它们都是将在整个站点的结构上保持一致,但在许多情况下,站点的整个细分只需要其中的几个子模板。我的想法是在 templates/base 文件夹下定义子模板,并在其他地方扩展 templates/base-type1.html、templates/base-type2.html 等。每种类型只会引用所需的子模板,并根据需要覆盖它们以放置内容。

0 投票
1 回答
528 浏览

django - 扩展镜像存储模型

我正在尝试在我的项目中安装 imagestore 应用程序。默认模型创建成功,所有其他部分正常工作。

但是,它具有扩展基本(抽象)模型并通过一些复杂机制创建自己的功能的功能。这是我的模型:

我的设置中还有一个字符串IMAGESTORE_ALBUM_MODEL = 'art.models.Newalbum'。当我运行 syncdb 时,它告诉我后端模块“art.models”没有定义“Newalbum”类。(“模块”对象没有属性“新专辑”)。但当然它定义了。

而陌生感才刚刚开始。当我将调试语句放在 imagestore 试图获取我的模型的地方时,它会打印正确的模块(已经导入)和正确的类名(字符串)。但!dir(mod)仅打印出现在“from imagestore.models.bases.album import BaseAlbum”之前的变量。在上面的示例中,仅显示“models”和默认下划线属性。为什么?关于导入模块我不知道什么?

我已经尝试在设置属性、django 版本(和所需应用程序)、app_label 等的许多尴尬组合中安装它。当我没有在我的设置中添加 IMAGESTORE_ALBUM_MODEL 时,它会创建表,但是这个模型没有任何 BaseClass 的行为。那么,我做错了什么?

0 投票
2 回答
100 浏览

django - 如何从 Django 中的子对象中选择基类(使用模型继承)

我有一个基本模型和一个从它继承的模型,在设置上与此类似:

如何从子类访问基类?例如:

根据文档,它只是在孩子中自动创建的一对一关系,所以我认为它会让我倒退。我想要这个的原因是因为我有第三个非存档模型,它具有存档的外键。我想要存档的外键,因为这样第三个模型可以与任何存档相关,而不仅仅是特定的存档类型。

0 投票
1 回答
596 浏览

django - 其他模型字段上的 Django 模型继承

我有以下型号:

不,我在 a 上使用 DetailView CarTurboEnginecar.engine.speed()返回 100。如何让它选择正确的类?

0 投票
2 回答
1822 浏览

django - django 多重继承

我目前正在做一个 django 项目,我需要做多个遗留。该项目本身有一个拥有多个网站的管理员。在我的管理部分,我创建了一个 Member 类,其中包含成员的所有必需信息。然后,所有单个站点都有一个 MemberExtra 类,它是从管理员的 Member 类创建的,我在其中添加了所有补充信息。当我启动我的服务器(python manage.py runserver ...)时,我遇到了那个错误:

管理员/models.py:

程序站点/models.py:

美食家/models.py:

0 投票
1 回答
255 浏览

django - 派生模型文件字段不可用

我有一个基础模型和从中派生的模型。基本模型不是抽象的,所以它也有与之关联的表。

问题:我先创建一个基本实例,然后再创建一个派生实例。并将派生实例与基础相关联。但是我进入FileField派生类None,即使它在父类中保存和可用。为什么这样?我错过了什么吗?

一些示例代码:

django shell 上的示例:

更新:@dgel 的回答:

  • save_base()它会保存派生对象吗?dobj之后没有得到 id。
  • 之后dobj.save(),似乎基类中的属性被派生类中的属性覆盖。
  • 我用 default添加ctime了创建时间。所以一旦我保存派生对象,就会更新以节省派生对象的时间。BaseModeldatetime.datetime.utcnowctime
  • 当我通过sqlitebrowser查看数据库时,filepath该行的字段BaseModel为空。

谢谢。

0 投票
1 回答
105 浏览

python - Django 使用代理对复杂继承建模

我有这些模型:

现在我和他们玩了一下,但我发现了一个问题:

最后一行以意想不到的方式工作!因此,为了更好地查看文档,我搜索了 Django 自动向下转换属性,但我发现只有一个A()没有自动转换的类B()C().

当我保存数据时,还有一种方法可以保存继承吗?谢谢!

0 投票
1 回答
72 浏览

django - django继承伤害了我的大脑

我正在制作一个啤酒网站,但我被困住了。我需要一个能与许多不同成分相关的食谱。有没有办法创建一个模型“成分”,并继承许多不同的模型:“啤酒花”、“谷物”等。我想这样做,所以我有我的配方和成分之间的关​​系,我没有创建 100 种不同的关系来涵盖每种成分。

这可能吗?

0 投票
2 回答
392 浏览

django - 如何从现有的基本模型实例创建继承的 django 模型实例?

我有两个像这样的 django 模型:

我之前创建了一个Place实例,如下所示:

现在,鲍比已经将他的街头小贩升级为餐厅。我怎么能在我的代码中做到这一点?!为什么此代码不起作用:

0 投票
3 回答
7456 浏览

django - django 呈现一个空白页面

首先,我想承认,我对 Django 完全陌生。我正在尽可能地学习。我正在阅读一本名为“Beginning Django E-Commerce”的书。在不希望侵犯版权的情况下,也许你们可以发现我哪里出错了。我正在使用 Django 1.4.3,我正在使用的书可能是为 Django 1 编写的,也许是 1.1,但这里有。

我的 base.html

我的目录.html:

我的 index.html:

所有这些文件都存储在模板目录中。此时的书建议我运行以下命令:

并调整我的 urls.py:

urlpatterns = patterns('', ... (r'^catalog/$', 'preview.views.home'), )

调整预览目录下的views.py:

然后你应该能够看到一个页面,上面写着:

跳转到主要内容 [此处链接到购物车] 现代音乐家 [此处导航] [此处搜索框] [此处分类列表] 欢迎![此处为页脚]

但是,我得到的只是一个空白页。谁能弄清楚为什么?(这本书可能只是过时了)当我查看空白页的来源时。

这实际上是 base.html 的空白渲染。在开发服务器中,我没有错误:

我的步骤的完整列表,请参阅此站点