Cer*_*rin 11 python django django-admin
我在Django的管理员中有一个模型,它使用ModelAdmin的readonly_fields列表来显示一个"user"字段,这是一个链接到Django用户模型的ForiegnKey.默认情况下,readonly_fields会将此字段呈现为包含用户电子邮件的简单文本(例如someuser@domain.com).如何将其更改为呈现为该用户的关联管理页面的链接?(例如<a href="/admin/auth/user/123/">someuser@domain.com</a>)
Cer*_*rin 34
深入研究源代码,我发现你基本上可以将自己的字段定义为ModelAdmin子类中的方法,并且只需从方法中返回链接html即可将字段呈现为链接.
例如
from django.contrib import admin
from django.utils.safestring import mark_safe
from django.core import urlresolvers
class MyModelAdmin(admin.ModelAdmin):
readonly_fields = ['user_link']
def user_link(self, obj):
change_url = urlresolvers.reverse('admin:auth_user_change', args=(obj.user.id,))
return mark_safe('<a href="%s">%s</a>' % (change_url, obj.user.email))
user_link.short_description = 'User'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6160 次 |
| 最近记录: |