Django list_editable with custom method in list_display

Viewed 20

I'm trying to do inline editing for list. I have the column language, which i use a custom method get_language to display how i want.

from django.contrib import admin
from .models import *

    class MovieAdminModel(admin.ModelAdmin):
        search_fields= ('title_en')
        list_display = ('get_language',)
        list_editable = ('get_language')
    
        def get_language(self, obj):
            if obj.language==1:
                return 'Persian With English Subtitle'
            else:
                return 'Persian'
            
        get_language.admin_order_field = "language"
        get_language.short_description = "language"

When i use get_language in list_editable an error is returned because get_language is not in the Model, language is. If i use language in list_editable, says it isn't defined in list_display. How do i solve this?

1 Answers

obliviously:

class MovieAdminModel(admin.ModelAdmin):
        search_fields= ('title_en')
        list_display = ('__str__', 'language',)
        list_editable = ('language')

__str__ - you need it, otherwise you don't have a link to change_form.

Related