在我的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。我必须写一个视图来显示我希望的预览。与帖子上的解决方案的不同之处在于我做了一个Button而不是提交输入,而且我的javascript打开了预览页面的弹出窗口。因此,您仍然可以保留在管理界面中,您可以在预览更改时根据需要更新模型。
谢谢!
答案 0 :(得分:1)
您可以覆盖change_form的模板,也可以添加指向对象工具的链接,这是放置“预览”链接的常用位置。事实上,Django管理员为在同一位置定义get_absolute_url
的模型提供了“在网站上查看”预览链接。