我仍然不确定这是解决此问题的正确方法,也许不是,但无论如何我都会问。我想重写wordpress(理由:因为我可以)虽然我自己在Django中更简单,我希望能够在页面上以不同的方式配置元素。例如,我可能有:
- 博客模型
- 站点更新消息模型
- 最新的评论模型。
现在,对于网站上的每个页面,我希望用户能够选择其顺序和任何项目。在我的思考过程中,这将是这样的:
class Page(models.Model)
Slug = models.CharField(max_length=100)
class PageItem(models.Model)
Page = models.ForeignKey(Page)
ItemType = models.CharField(max_length=100) # tells me which model to display
InstanceNum = models.IntegerField() # tells me which instance of which model...
然后,理想情况下,我的模板将遍历页面中的所有 PageItem,这很容易做到。
但是,如果我的页面项目是网站更新而不是博客文章怎么办?基本上,我想我想以不同的顺序拉回不同的项目类型并使用适当的模板显示它们。现在,我认为一种方法是在 inviews.py
中循环所有对象并调用适当的视图函数,将一些 html 作为字符串返回,然后将其通过管道传输到生成的模板中。
我的问题是 - 这是做事的最佳方式吗?如果是这样,我该怎么做?如果不是,我应该走哪条路?我对 Django 很陌生,所以我还在学习它可以做什么和不能做什么,所以请多多包涵。我已经检查过 SO 是否有欺骗性,并且认为以前没有人问过这个问题......
我还查看了 Django-cms 是否有帮助,但我无法掌握它。
有什么建议么?