from django.contrib import admin from .models import * from unfold.admin import ModelAdmin, TabularInline from import_export.admin import ImportExportModelAdmin from unfold.contrib.import_export.forms import ExportForm, ImportForm, SelectableFieldsExportForm from unfold.contrib.forms.widgets import ArrayWidget, WysiwygWidget from django.contrib.postgres.fields import ArrayField class OrderItemModelInline(TabularInline): model = OrderItemModel extra = 0 max_num = 0 def has_delete_permission(self, request, obj=None): return False def get_readonly_fields(self, request, obj=None): return [field.name for field in self.model._meta.fields] @admin.register(OrderModel) class OrderAdmin(ModelAdmin, ImportExportModelAdmin): import_form_class = ImportForm export_form_class = ExportForm list_filter = ['is_paid', 'status'] list_display = ['user', 'is_paid', 'status', 'discount_code', 'address'] compressed_fields = True warn_unsaved_form = True formfield_overrides = { ArrayField: { "widget": ArrayWidget, } } inlines = [OrderItemModelInline]