Name | django-nanoid-field JSON |
Version |
0.1.4
JSON |
| download |
home_page | None |
Summary | Next generation NanoID in Django Model IDs |
upload_time | 2024-06-19 19:48:15 |
maintainer | None |
docs_url | None |
author | None |
requires_python | None |
license | MIT |
keywords |
django
nanoid
django-field
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Django NanoID Field
NanoID is an alternative to UUID, CUID for generating random IDs. This package
provides a field to use in models.
## Roadmap
- [ ] Create `AutoField` that uses NanoID instead of regular integer ID.
## Installation
Install it from PyPI:
```sh
pip install django-nanoid-field
```
## Usage
First, add it to your applications (Not Required)
```python
INSTALLED_APPS = [
# ...
'nanoid_field',
# ...
]
```
You can now use it in your models like:
```python
from django.db import models
from nanoid_field import NanoidField
class Profile(models.Model):
hash = NanoidField(max_length=10, alphabet='0123456789abcdefghijklmnopqrstuvwxyz)
```
## NanoidField
This model field is based on `CharField`. All of it's parameters can be used.
Additionally following fields affects outcome of NanoID:
### `max_length` Parameter (Optional)
Determines size of the generated ID as well as length of the field in Database.
#### **DEFAULT:**
```
21
```
### `alphabet` Parameter (Optional)
This optional parameter helps you to determine which characters will be used to
build up.
#### **DEFAULT:**
```
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz-
```
## Using NanoidField as `primary_key`
To use NanoID as default `primary_key` you need to explicitly define it in your
model:
```python
from django.db import models
class SomeModel(models.Model):
id = NanoidField()
# ...
```
## Changing defaults
`django-nanoid-field` also provides two settings to change defaults of `alphabet`
and `max_length`. You can change those by adding them to your `settings.py` file
```python
# settings.py file
NANOID_ALPHABET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz-"
NANOID_SIZE = 21
```
Raw data
{
"_id": null,
"home_page": null,
"name": "django-nanoid-field",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "django, nanoid, django-field",
"author": null,
"author_email": "Gokhan Ozturk <me@gokhan.org.tr>",
"download_url": "https://files.pythonhosted.org/packages/ab/f4/dd7d32366681fa608fd9207eec1bdcc960e9225a2d2523fa7f75466cc3f4/django_nanoid_field-0.1.4.tar.gz",
"platform": null,
"description": "# Django NanoID Field\n\nNanoID is an alternative to UUID, CUID for generating random IDs. This package\nprovides a field to use in models.\n\n\n## Roadmap\n\n- [ ] Create `AutoField` that uses NanoID instead of regular integer ID.\n\n\n## Installation\n\nInstall it from PyPI:\n\n```sh\npip install django-nanoid-field\n```\n\n\n## Usage\n\nFirst, add it to your applications (Not Required)\n\n```python\nINSTALLED_APPS = [\n # ...\n 'nanoid_field',\n # ...\n]\n```\n\nYou can now use it in your models like:\n\n```python\nfrom django.db import models\nfrom nanoid_field import NanoidField\n\nclass Profile(models.Model):\n hash = NanoidField(max_length=10, alphabet='0123456789abcdefghijklmnopqrstuvwxyz)\n```\n\n\n## NanoidField\n\nThis model field is based on `CharField`. All of it's parameters can be used.\n\nAdditionally following fields affects outcome of NanoID:\n\n\n### `max_length` Parameter (Optional)\nDetermines size of the generated ID as well as length of the field in Database.\n\n#### **DEFAULT:**\n```\n21\n```\n\n\n### `alphabet` Parameter (Optional)\nThis optional parameter helps you to determine which characters will be used to\nbuild up.\n\n#### **DEFAULT:**\n```\n0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz-\n```\n\n\n## Using NanoidField as `primary_key`\nTo use NanoID as default `primary_key` you need to explicitly define it in your\nmodel:\n\n```python\nfrom django.db import models\n\n\nclass SomeModel(models.Model):\n id = NanoidField()\n # ...\n```\n\n## Changing defaults\n`django-nanoid-field` also provides two settings to change defaults of `alphabet`\nand `max_length`. You can change those by adding them to your `settings.py` file\n\n```python\n# settings.py file\n\nNANOID_ALPHABET = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz-\"\nNANOID_SIZE = 21\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Next generation NanoID in Django Model IDs",
"version": "0.1.4",
"project_urls": {
"Documentation": "https://github.com/goztrk/django-nanoid-field",
"Homepage": "https://github.com/goztrk/django-nanoid-field",
"Repository": "https://github.com/goztrk/django-nanoid-field.git"
},
"split_keywords": [
"django",
" nanoid",
" django-field"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8d01b13d05ce78a412ffcae77904ea08d5ee919676c7eb729825248b68d32eb5",
"md5": "7c1d9fbe85f90da81392da1c3a9a4e6c",
"sha256": "1c55d8c308d609dfe62ac9e4a1482eb9f7642997852a920b827748e660577b6e"
},
"downloads": -1,
"filename": "django_nanoid_field-0.1.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7c1d9fbe85f90da81392da1c3a9a4e6c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 3918,
"upload_time": "2024-06-19T19:48:08",
"upload_time_iso_8601": "2024-06-19T19:48:08.848330Z",
"url": "https://files.pythonhosted.org/packages/8d/01/b13d05ce78a412ffcae77904ea08d5ee919676c7eb729825248b68d32eb5/django_nanoid_field-0.1.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "abf4dd7d32366681fa608fd9207eec1bdcc960e9225a2d2523fa7f75466cc3f4",
"md5": "9cf3e02c13aa0da279101b1d04b05266",
"sha256": "df453208733c29f4af295f4fdd74ccc18d3203e4ac2cb0267ef0ba93f09140c2"
},
"downloads": -1,
"filename": "django_nanoid_field-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "9cf3e02c13aa0da279101b1d04b05266",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 3400,
"upload_time": "2024-06-19T19:48:15",
"upload_time_iso_8601": "2024-06-19T19:48:15.814085Z",
"url": "https://files.pythonhosted.org/packages/ab/f4/dd7d32366681fa608fd9207eec1bdcc960e9225a2d2523fa7f75466cc3f4/django_nanoid_field-0.1.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-19 19:48:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "goztrk",
"github_project": "django-nanoid-field",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "django-nanoid-field"
}