糟糕,我在重新阅读问题之前输入了以下内容。因此,如果您想在列表中显示自定义列Location
,请执行以下操作。否则,请查看@jpic 的答案。
--
是的,您可以使用 ModelAdmin 上的方法定义自定义管理列,如下所示:
import datetime
from django.contrib import admin
from my_app.models import Location
class LocationAdmin(admin.ModelAdmin):
list_display = ('name', 'slug', 'custom_column',)
# define the row x column value here
def custom_column(self, obj):
if obj.last_updated < datetime.datetime.now() - datetime.timedelta(minutes=5):
retval = ('red.jpg', 'This location checked in more than 5 minutes')
else
retval = ('green.jpg', 'This location checked in less than 5 minutes ago')
return "<img src='%s' alt='%s' />" % retval
# set the column heading here
custom_column.short_description = 'Status'
# don't forget to register the newly sub-classed ModelAdmin
admin.site.register(Location, LocationAdmin)
自定义方法也可以是模型本身的属性。有关详细信息,请参阅管理员文档。