如何在 django 管理员的编辑页面中添加“预览”按钮?

Posted

技术标签:

【中文标题】如何在 django 管理员的编辑页面中添加“预览”按钮?【英文标题】:How can i add a 'preview' button in the edit page of the django admin? 【发布时间】:2019-08-22 12:22:14 【问题描述】:

经过长时间的搜索,我仍然没有找到任何可以申请的答案。

我的 django 应用中有一个模型,可以在网站上创建新页面:

class Page(models.Model):
    name = models.CharField(max_length=255, null=False, blank=False, unique=True)
    content = htmlField('Content')
    slug = models.CharField(max_length=255)
    background_image = models.ImageField(
        upload_to="page_background/",
        null=False,
        blank=False,
        default="default/livresse_logo.png",
    )

正如你所见,里面有一个所见即所得的编辑器,一个标题和一个背景图片。

当我进入管理页面时是这样的:

我正在寻找一种方法来添加一个按钮“预览”(可能在保存按钮旁边),该按钮将显示模板中包含的模型的内容,该模板将用于在保存之前显示页面。 我希望此按钮仅针对该模型显示。 希望我足够清楚。

【问题讨论】:

【参考方案1】:

我不确定是否有一个优雅的解决方案,但是您可以稍微不同地解决您的问题,在模型中实现布尔参数 is_published ,并以尚未 is_published 的文章的方式编写视图只有超级用户才能看到,所以我通常会组织一个预览。

【讨论】:

其实如果是为了我,我会这样做,但这是一个特殊的需求,所以我暂时自己做管理员,只是为了这个功能,我没有任何其他想法,但这就是很多工作(我从 django 和 web dev 开始)。至少它有效。问题仍未解决。

以上是关于如何在 django 管理员的编辑页面中添加“预览”按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何只允许管理员(或某些用户)在 Django 中编辑页面?

如何在 Django 管理列表显示页面中编辑 ManyToManyField?

Django将硬编码的href链接添加到管理模型的表单视图页面

如何在Django Admin Page中编辑请求的参数?

django学习-管理界面视图

将“另存为新”按钮添加到 Django 外部对象编辑弹出窗口