Why I cannot call my function (order_detail)in django admin file?
django.core.management.base.SystemCheckError: SystemCheckError: System check identified some issues:
ERRORS: <class 'orders.admin.OrderAdmin'>: (admin.E108) The value of 'list_display[10]' refers to 'order_detail', which is not a callable, an attribute of 'OrderAdmin', or an attribute or method on 'orders.Order'.
System check identified 1 issue (0 silenced).
my django admin.py
def order_detail(obj):
return '<a href="{}">View</a>'.format(reverse('orders:admin_order_detail',
args=[obj.id]))
order_detail.allow_tags = True
# @admin.register(Order)
class OrderAdmin(admin.ModelAdmin):
list_display = ['id', 'first_name', 'last_name', 'email',
'address', 'postal_code', 'city', 'paid', 'created', 'updated', 'order_detail']
list_filter = ['paid', 'created', 'updated']
inlines = [OrderItemInline]
actions = [export_to_csv]
admin.site.register(Order, OrderAdmin)
You have to change 'order_detail'
to order_detail
.
Strings will be interpreted by django as attribute of the model or admin class. Specifying order_detail
will inform django that it is a callable.