【问题标题】:add an extra link to preview your object in a Django admin form添加一个额外的链接以在 Django 管理表单中预览您的对象
【发布时间】:2011-10-11 07:59:08
【问题描述】:

在我的 django 应用程序中,我们允许我们的客户自定义他们的网页。 为了做到这一点,我创建了一个模型来生成模板,它实际上工作正常。我的问题是我想在管理表单中添加一个预览链接。 这样,我可以执行“保存并继续编辑”来保存模板,如果需要,我可以在编辑页面时单击此链接进行预览。

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

  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 打开了预览页面的弹出窗口。因此,您仍然停留在管理界面中,您可以在预览更改的同时根据需要更新模型。

谢谢!

【问题讨论】:

    标签: python django django-admin


    【解决方案1】:

    您可以只覆盖 change_form 的模板,也可以添加指向对象工具的链接,这是放置“预览”链接的常见位置。事实上,Django 管理员为在同一位置定义了get_absolute_url 的模型放置了“现场查看”预览链接。

    【讨论】:

    • 这是一件好事,但我不能在这种情况下使用它,因为我添加了两个按钮用于标准网页的预览,另一个按钮用于移动版本。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    • 2011-06-24
    • 2015-11-08
    相关资源
    最近更新 更多