Почему я не могу вызвать свою функцию (order_detail) в файле администратора django?
django.core.management.base.SystemCheckError: SystemCheckError: Проверка системы выявила некоторые проблемы:
ERRORS: <class 'orders.admin.OrderAdmin'>: (admin.E108) Значение 'list_display[10]' ссылается на 'order_detail', который не является вызываемым, атрибутом 'OrderAdmin', или атрибутом или методом 'orders.Order'.
Проверка системы выявила 1 проблему (0 замалчивается).
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)
Вы должны изменить 'order_detail'
на order_detail
.
Строки будут интерпретированы django как атрибуты класса модели или администратора. Указание order_detail
сообщит django, что это вызываемый объект.