2

我在找出与 Django 建立以下关系的最佳方法时遇到了问题。

我目前有一个站点模型作为其他所有内容的主要模型。站点由两个基本构建块组成:ModuleSlot 和模块。ModuleSlot 是可以附加模块(我将在稍后描述)的东西。

然后我有一个名为 ModuleBase 的模型,它是可以附加到站点模块槽的模块的基本模型。模块是一个独立的网站,它本身就是功能性的——它对外部世界一无所知。ModuleBase 模型旨在被继承以创建新模块——示例模块是 Poll 模块和 Content 模块。关键是,我希望将来能够定义新类型的模块,所以这就是我选择基类方法的原因。下面的图片可能更好地描述了我刚刚写的内容。

http://i.stack.imgur.com/Y1nUw.png

现在,我想把时间带入这个方案——ModuleSlot 的内容应该是及时的,这意味着模块和附加的投票/内容/等。应该能够在相同的、预定义的时间进行更改。例如,假设 ModuleSlot 当前绑定到 Content 模块。我希望 ModuleSlot 更改为指向 Poll 模块并显示一个特定的 Poll。这一切都应该在特定时间自动发生。

我该如何呈现这种关系?我一直在给这个,这就是我到目前为止所拥有的:我认为我应该创建某种 GenericContent 模型,然后由模块定义的各个内容类型继承,例如。PollModule 的 Poll 将从 GenericContent 继承,ContentModule 的 Content 也会这样做。我还应该为 ModuleSlot 介绍 TimeSpan。然后,在后端,我可以每分钟检查一个 ModuleSlot 是否需要更新,如果模块和附加内容应该更改,则进行更新。你们有什么感想?下面的凌乱图片(可能)描述了所描述的关系。

我不确定继承是否是正确的方法(GenericContent)。我也可以只存储 Poll/Content/etc 的 id。在 ModuleSlot 中,因为我所有的 id 都是相同的类型 - 因为我知道附加到 ModuleSlot 的模块,所以我可以向模块询问给定 id 的内容。

http://i.stack.imgur.com/lFE1h.png

4

0 回答 0