添加一个额外的链接来预览Django管理表单中的对象

2024-06-08 23:30:39 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的django应用程序中,我们使客户机能够定制他们的web页面。 为了做到这一点,我创建了一个模型来生成模板,它实际上运行良好。我的问题是我想在管理表单中添加一个预览链接。 这样我就可以通过“保存并继续编辑”来保存模板,如果需要,可以单击此链接在编辑页面时预览模板。在

我已经从列表显示中激活了预览,但是我希望这个字段直接显示在表单中。在

  def get_absolute_url(self):
          return "preview/%i/" % self.id

  def preview_template(self):
      return '<a href="' + self.get_absolute_url() + '" target="_blank">Preview</a>'
  preview_template.allow_tags = True
  preview_template.short_description = 'Preview'

  class BlockPageAdmin(admin.ModelAdmin):
    list_display    = ( ... 'preview_template',)

但这是一种直接更新表单的方式吗?在

更新

我是按照这个问题的主要思想来做的:Adding an extra button to one object in django admin

最后,我在模型的管理配置中添加了javascript文件,并编写了一个javascript函数来生成预览对象的url。我不得不写一个视图来显示我所希望的预览。与帖子中的解决方案不同的是,我只使用了一个按钮而不是提交输入,再加上我的javascript打开预览页面的弹出窗口。因此,您仍然停留在管理界面中,您可以在预览更改时根据需要更新模型。在

谢谢你!在


Tags: django模型self模板url编辑表单get
1条回答
网友
1楼 · 发布于 2024-06-08 23:30:39

您可以只覆盖change_表单的模板,也可以添加到对象工具的链接,这是放置“预览”链接的常用位置。实际上,Django-admin为在同一位置定义了get_absolute_url的模型提供了“现场查看”预览链接。在

相关问题 更多 >