Configuration
OpsDeck
admin = OpsDeck(
app,
secret_key="change-me",
engine=engine,
title="Operations",
prefix="/admin",
auth_model=AdminUser,
audit_model=AdminAuditLog,
secure_cookies=True,
)
Important options
engine: enables database-backed CRUD, search, export, and relationship lookupsauth_model: enables admin login and permission checksaudit_model: persists create, update, and delete historysecure_cookies: forces secure session cookies even outside environment defaults
register() options
admin.register(
User,
list_display=["id", "email"],
searchable_fields=["email"],
filter_fields=["is_active"],
permissions={"view": ["*"], "edit": ["admin"]},
eager_load=["organization"],
)
Common options:
fieldsexcludelist_displaysearchable_fieldsfilter_fieldsorderingreadonlypermissionsrow_scopeactionsfield_overrideswidgetseager_loaddetail_panelsmenu_labelmenu_order
ModelAdmin
Use ModelAdmin when you want a reusable declarative config rather than a long register() call.