{"categories":[{"label":"Dynamic Content","url":"https://skillfed.io/packages/category/internet-www-http-dynamic-content/4"}],"enrichment":{"capability":"Provides a Django model field that proxies primary keys as hashids\u2014short, unique, non-sequential strings\u2014without storing them in the database or altering the model structure.","skillfed_tags":["django-orm","url-obfuscation","id-encoding"],"use_cases":["Expose non-sequential, non-guessable IDs in public URLs (e.g., /item/1Z/ instead of /item/1/) to avoid leaking data patterns.","Use hashids as slug-like identifiers in REST APIs to obscure the actual database primary key from clients.","Filter and query Django ORM by hashid string in views and querysets without manual encode/decode logic.","Integrate hashid fields into Django Admin search_fields for exact ID lookups by the encoded string.","Configure global or per-field hashid encoding rules (salt, minimum length, custom alphabet) for different security or readability needs."],"what_it_does":"django-hashids is a Django model field that encodes and decodes primary keys as hashids\u2014short, obfuscated strings like '1Z' or '4x'\u2014without modifying the database schema or the underlying id field. It acts as a transparent proxy: your model's id continues to work normally, but the hashid field lets you expose non-sequential, non-guessable identifiers in URLs, APIs, and user-facing contexts. Queries and filtering work on the hashid string, and the library handles the encode/decode automatically.\n\nThe field supports Django ORM lookups (exact, iexact, contains, icontains, gt, gte, lt, lte, isnull, and __in), works with Django REST Framework serializers, integrates with Django Admin search, and can be configured globally via settings (DJANGO_HASHIDS_SALT, DJANGO_HASHIDS_MIN_LENGTH, DJANGO_HASHIDS_ALPHABET) or per-field with custom salt, length, and alphabet. It depends only on the hashids library and is designed to be non-intrusive\u2014you add the field to your model and use it; no migrations or database changes required.","worth_installing":"Yes, if you need to expose non-sequential IDs in URLs or APIs without database changes. The low install friction, permissive license, and transparent ORM integration make it straightforward to adopt. Caveat: maintenance is aging (last release 275 days ago) and testing is documented only through Django 4.0; verify compatibility with your Django version before committing to production."},"id":"django-hashids","links":{"html":"https://skillfed.io/packages/django-hashids","md":"https://skillfed.io/packages/django-hashids.md","pypi":"https://pypi.org/project/django-hashids/"},"maintenance":{"status":"aging"},"meta":{"latest_release":"2025-11-12","license_spdx":null,"license_treatment":"permissive","name":"django-hashids","python_support":"supports_current","summary":"Non-intrusive hashids library for Django"},"popularity":{"monthly_downloads":75445,"position":14712,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"0.7.1"}
