Кастомизирую django-admin, таким образом:
@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
search_fields = ['name', 'id']
list_filter = ('is_active', 'availability')
list_display = ['availability']
readonly_fields = ['availability']
def get_queryset(self, request):
queryset = super(ProductAdmin, self).get_queryset(request)
return queryset.annotate(availability=Case(
When(quantity__gt=0, then=True),
default=False
))
def availability(self, obj):
return 'Да' if obj.availability else 'Нет'
availability.short_description = 'В наличие'
Когда я добавляю поле
availability в
list_filter , Django даёт ошибку:
<class 'shop.admin.ProductAdmin'>: (admin.E116) The value of 'list_filter[1]' refers to 'availability', which does not refer to a Field.
Пытался добавлять данное поле в
fields, но ошибка остаётся.
Подскажите, как это можно исправить?
Заранее благодарю.