я добавил настраиваемое поле в list_display, но когда добавляю это поле list_editable в django admin, я получаю сообщение об ошибке: adminE121 - PullRequest
0 голосов
/ 04 марта 2020

У меня есть метод в классе администратора модели, который получает данные поля обратной связи в list_display, но когда я также добавляю это поле в list_editable, я получаю ошибку

<class 'app.admin.CustomerAdmin'>: (admin.E121) The value of 'list_editable[2]' refers to 'box_status', which is not an attribute of 'app.Customer'.

это класс администратора модели

@admin.register(Customer)
class CustomerAdmin(AbstractModelAdmin):
    class Media:

    list_display = ['name', 'email', 'phone', 'stylist', 'box_schedule', 'drop_off_step', 
                    'box_status', 'age''created_at', 'payment_status']
    list_display_links = ('name', 'email')
    search_fields = ['name', 'email', 'id']
    list_editable = ['stylist', 'payment_status', 'box_status']

ниже - мой метод box_status, получаемый из поля связанной модели.

    def box_status(self, obj):
        det = list(obj.box.values_list('box_status', flat=True))
        return det

, это работает в list_display, но системная ошибка в list_editable.

Ответы [ 2 ]

1 голос
/ 04 марта 2020

Например, вы используете метод в редактируемый список. Django позволяет редактировать только поля модели в list_editable. Не «возвращается» из методов.

0 голосов
/ 04 марта 2020

В list_editable вы можете указать только поля модели. https://docs.djangoproject.com/en/3.0/ref/contrib/admin/#django .contrib.admin.ModelAdmin.list_editable

...