我有一个django管理界面,并在模型列表中我想要一个自定义列,将使用其中一个字段值的超链接。基本上模型的一个领域是一个网址,我希望列可以在一个可点击的超链接中的URL。此链接需要在模型字段中添加附加的URL作为其相对路径。如何在django管理界面中添加超链接自定义列?
47
A
回答
60
定义您的ModelAdmin类的方法及其allow_tags
属性设置为True
。这将允许该方法返回未转义的HTML以在列中显示。
然后列出其作为ModelAdmin.list_display属性的条目。
实施例:
class YourModelAdmin(admin.ModelAdmin):
list_display = ('my_url_field',)
def my_url_field(self, obj):
return '<a href="%s%s">%s</a>' % ('http://url-to-prepend.com/', obj.url_field, obj.url_field)
my_url_field.allow_tags = True
my_url_field.short_description = 'Column description'
参见ModelAdmin.list_display的文档的更多细节。
+0
有一天我发现你实际上不需要'a'标签,因为Django管理员会自动将URL变成超链接。尽管我不在工作电脑上,但我可能会错的。在我的情况下,我不需要设置'allow_tags'。我也在我的模型上创建了一个'get_url()'函数,而不是我的管理模型 - 但这很简单。然而,如果我们想用'target = _blank'在一个新窗口中打开链接,你的方式是最好的 - 希望这会有所帮助。 – 2010-01-29 21:56:11
10
使用format_html
实用程序。这将从参数中转义任何html,并将该字符串标记为可安全地在模板中使用。方法属性allow_tags
在Django 1.9中已被弃用。
from django.utils.html import format_html
class MyModelAdmin(admin.ModelAdmin):
list_display = ['show_url', ...]
...
def show_url(self, obj):
return format_html("<a href='http://pre.com{0}'>{0}</a>", obj.url)
现在您的管理员用户甚至在的情况下是安全的:
url == '<script>eval(...);</script>'
更多信息,请参见the documentation。
相关问题
- 1. Django中的自定义管理界面
- 2. django 1.9 +自定义管理界面
- 3. 如何将自定义插件添加到KeystoneJS管理界面?
- 4. 添加链接到Django管理页面
- 5. 在管理员界面中添加自定义选项卡
- 6. 如何自定义Django管理界面中的字段
- 7. 如何在Django管理界面的更改列表页面添加自定义字段标题名称?
- 8. 添加自定义Django管理操作
- 9. 在Django管理界面中的自定义功能
- 10. 如何自定义django管理面板模型列? django
- 11. 将自定义视图添加到django的管理面板中
- 12. 如何在自定义管理模块中添加自定义管理主题
- 13. 将自定义操作添加到管理界面上的Django嵌入对象
- 14. 定制Django管理界面
- 15. 如何在Djagno管理界面中编写自定义视图
- 16. Django管理添加自定义按键+自定义表单
- 17. Django - 自定义管理页面的添加视图
- 18. 添加自定义按钮,Django管理面板
- 19. Django管理:添加自定义字段到模板页面
- 20. 如何在自定义添加管理页面中添加模型?
- 21. 如何将自定义JavaScript添加到kyestonejs管理用户界面
- 22. 在管理界面中添加按钮
- 23. Django管理界面
- 24. 如何添加自定义JS到Django模型管理
- 25. 如何将自定义控件添加到django管理站点?
- 26. 如何将自定义部分添加到Django管理主页?
- 27. 在django管理页面上添加链接和按钮
- 28. 如何在Django中创建自定义管理配置面板?
- 29. 如何使用自定义链接添加Wordpress菜单页面(在管理面板中)?
- 30. 添加自定义链接到'管理/内容'的操作
的可能的复制[如何可点击的链接添加到Django管理现场?](http://stackoverflow.com/questions/1949248/how-to-add-clickable-links-to-a-field-in -django-admin) – Louis 2016-05-23 22:57:44