我有一個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