次の AdminModel があります。
class ActionAdmin(admin.ModelAdmin):
list_display = (
'action_icon',
'name_',
'level',
'class_',
'category',
)
search_fields = ('name', 'category__name',)
ordering = ('level', 'name', '_class')
def name_(self, obj):
return '<strong>%s</strong>' % (obj.name)
def action_icon(self, obj):
if obj.icon:
return '<img title="%s" src="/media/%s" style="height: 42px; border-radius: 5px; -webkit-border-radius: 5px;" />' % (obj.name, obj.icon)
else:
return 'No Icon'
def class_(self, obj):
if obj == None:
return '-'
if obj._class:
return '<img title="%s" src="/media/%s" style="height: 42px; border-radius: 5px; -webkit-border-radius: 5px;" />' % (obj._class.name, obj._class.icon)
else:
return obj._class
def combo_action_(self, obj):
if obj == None:
return '-'
if obj.combo_action != None:
return '<img title="%s" src="/media/%s" style="height: 42px; border-radius: 5px; -webkit-border-radius: 5px;" />' % (obj.combo_action, obj.combo_action.icon)
else:
return obj.job
# Allow HTML for these
action_icon.allow_tags = True
name_.allow_tags = True
class_.allow_tags = True
combo_action_.allow_tags = True
# Allow ordering for these
name_.admin_order_field = 'name'
class_.admin_order_field = 'name'
name
カスタムとclass
フィールドの順序付けを許可しましたが、問題は、カスタム メソッド ( などname_(self, obj)
) で返されたものによって順序付けられることです。
そのフィールドを並べ替えたいが、具体的には元のフィールド値であり、メソッドで変更したものではないことを AdminModel に伝えるにはどうすればよいですか?