django-nativeshortuuidfield
Provides a NativeShortUUIDField for your Django models which uses the base-57 "Short UUID" package at https://github.com/stochastic-technologies/shortuuid/ to be used in Python and store it as full UUID in database.
Installation
Install it with pip (or easy_install):
$ pip install django-nativeshortuuidfield
Usage
First you'll need to add a NativeShortUUIDField to your class:
from native_shortuuid import NativeShortUUIDField
class MyModel(models.Model):
uuid = NativeShortUUIDField(unique=True, default=uuid.uuid4)
If you want to add the ability to search by shortuuid in ModelAdmin you need to inherit NativeUUIDSearchMixin
from native_shortuuid.admin import NativeUUIDSearchMixin
@admin.register(models.MyModel)
class MyModelAdmin(NativeUUIDSearchMixin, admin.ModelAdmin):
search_fields = ('uuid', )
If you want to have to ability to write your own uuid search fields list
from native_shortuuid.admin import NativeUUIDSearchMixin
@admin.register(models.MyModel)
class MyModelAdmin(NativeUUIDSearchMixin, admin.ModelAdmin):
admin_auto_extract_uuid_search_fields = False
search_fields = ('name', )
search_uuid_fields = ['uuid', 'foreign_model__uuid']
Enjoy!
Settings
ADMIN_AUTO_EXTRACT_UUID_SEARCH_FIELDS: defaultTrue- This setting is to autofill
search_uuid_fieldsin the ModelAdmins that inheritsNativeUUIDSearchMixinwith all shortuuid fields that are in thesearch_fieldsarray. if you turned it off, you'll need to definesearch_uuid_fieldson you ModelAdmin in order to search on shortuuid fields
- This setting is to autofill
Notes
-
NativeShortUUIDField is a subclass of django.db.models.UUIDField
-
You can pass usual Django UUIDField parameters on init, although some of them are added/overwritten:
- blank=True, editable=False (set auto=False to remove these fields enforcement)
Contribution Notes
Pull Request
- Increase the version number in the
setup.pyto the new version that the new pull request represents.
Publishing the Package
After the pull request gets merged into the master branch a new release should be created
-
Create a new tag with the same version number you updated the
setup.pywith:$ git checkout master $ git tag -a 2.1.0 -m 'fix importing order' $ git push origin 2.1.0
-
Go to GitHub's releases section and create a new release:
- Chose the tag version that you just created
- Fill the release title with the same version number
- Add a description of the release and publish it
Metadata
Release files for django-nativeshortuuidfield 1.4.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| django_nativeshortuuidfield-1.4.11.tar.gz | 11.8 kB | Without provenance | Details for django_nativeshortuuidfield-1.4.11.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| django_nativeshortuuidfield-1.4.11-py3-none-any.whl | Python 3 | none | any | Details for django_nativeshortuuidfield-1.4.11-py3-none-any.whl |
Total release size: 25.4 kB
Release files / django_nativeshortuuidfield-1.4.11.tar.gz
| Download URL | django_nativeshortuuidfield-1.4.11.tar.gz |
|---|---|
| Size | 11.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e2a2ce2d668b9d604c76640e8a2b6f33cae6481a14d5fe86012a5f232cb87a13
|
|
BLAKE2b-256 checksum How to use checksums |
8cb9360c544bc96d685f7d013c0a15a9d59038df2d8ba2538ea363f65aaac50e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / django_nativeshortuuidfield-1.4.11-py3-none-any.whl
| Download URL | django_nativeshortuuidfield-1.4.11-py3-none-any.whl |
|---|---|
| Size | 13.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
21236a82c904602aa89887f625512f388f2e0b7a51aaf89fd535e26cc3350e2f
|
|
BLAKE2b-256 checksum How to use checksums |
1f3b2948466c6c9a0e7df7fe83d8a36ebfdf3e57ce92e1ed98eb45be3dad08dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Security for django-nativeshortuuidfield 1.4.11
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.