【问题标题】:How can i edit the content on my django website pages?如何编辑我的 django 网站页面上的内容?
【发布时间】:2018-02-07 21:12:43
【问题描述】:

我是 django 的新手,我参与过一些项目,在所有项目中,我都使用 django 管理界面来管理内容,这显然是我的模型中的内容。我主要关心的是如何或者更确切地说有没有一种方法可以在不更改代码上实际的 html 的情况下编辑 about 部分或主页上的内容?

【问题讨论】:

  • 你可以选择 Django CMS 之类的东西。
  • 可以集成 django CMS 以使用我已经构建的模板吗?我已经有了手动硬编码内容的模板。

标签: python django django-models django-templates content-management-system


【解决方案1】:

您可以创建一个看起来像这样的新模型:

class HTMLModel(models.Model):
    title = models.CharField()
    content = models.TextField()

然后您可以在模板中加载模型并打印出来:

<h1>{{ model.title }}</h1>
<p>{{ model.content }}</p>

现在您可以从管理界面更改内容,它会在您的网页上显示更改。

编辑:在加载模型时,我假设您只创建一个实例,因此您可以像这样加载它:

return render(request, 'about_me.html', {
    model: HTMLModel.objects.get(pk=1)
})

如果您有多个页面,只需在模型中添加一个新字段,以指示应在哪个页面上显示它:

class HTMLModel(models.Model):
    page_name = models.CharField()
    title = models.CharField()
    content = models.TextField()

然后在您的视图中,您只需返回 page_name = 请求名称的模型:

model = HTMLModels.objects.get(page_name=request.path)

【讨论】:

  • 如果您的 django 管理员中有很多页面和字段怎么办?
  • 更新了我的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-19
  • 2019-01-24
  • 1970-01-01
相关资源
最近更新 更多