PyCrypto would be the Python-side library if you wanted to handle this in application code, but personally, I'd prefer to handle it in my database of choice. A lot of us use Postgres, and there's a django-pgcrypto library for that.
That being said, reversible ciphers are hard to do meaningfully. You'd need some sort of attack vector that includes getting unauthorized access to the database, but not via the authorized application, an authorized user, or access to the machine where the keys are readable. Often enough, that means you messed up the auth rules on your database, RBAC in your application code, or your OS read permissions, and you can't cipher your way out of those issues. A lot of that isn't really Django-centric, and because it's so rare to have a risk that's mitigated like that, most developers just don't do it, and not just out of laziness.
What you might actually want is row-level read access, and something like django-guardian would help you manage object-level permissions in the admin screen.
If you're looking for further reading, OWASP really is the gold standard for web security information. The site looks like amateur hour, but it's not maintained by UI experts, it's maintained by security experts. It's practically required reading in most security-conscious corporate environments.
And finally, when in doubt, throw it away. It's a lot harder to have a breach of data you didn't store anywhere.