1

次の 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 に伝えるにはどうすればよいですか?

4

1 に答える 1