finds.dev← search

// the find

ebertti/django-admin-easy

★ 501 · Python · MIT · updated Mar 2025

Collection of admin fields and decorators to help to create computed or custom fields more friendly and easy way

A small helper library that cuts down the boilerplate for computed/custom fields in Django's admin — things like showing an image, a boolean, a foreign-key link, or a formatted string without writing a full method plus short_description/admin_order_field dance. It's for teams who touch Django admin customization often enough that the repetition starts to annoy them.

No runtime dependencies beyond Django itself, so it's a safe, low-risk add. It's been kept current for over a decade — Django 5.0/5.1 and Python 3.12 support landed within the last year, with CI via GitHub Actions and coverage tracking. Beyond field rendering it has a few genuinely useful extras: a cached-field decorator with explicit manual invalidation (easy.cache_clear), and an action decorator that wires up permission checks for admin bulk actions.

Bus factor of basically one (ebertti) and modest adoption for its age — 501 stars after 11 years is a signal this hasn't seen much outside scrutiny. The API has too many overlapping ways to do the same thing (SimpleAdminField vs FormatAdminField vs @smart vs @short), and several of them resolve attribute paths via magic strings like 'related.attribute_or_method' that will fail at runtime with an unhelpful error if you typo them, with no static checking. Documentation is the README and nothing else — no docs site, no migration notes for the Django <2.0 drop. GenericForeignKeyAdminField is a correctness trap: it needs select_related('content_type') to avoid N+1 queries, and that's on the admin author to remember rather than something the library enforces or warns about.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →