Django Case Insensitive Field is used to make Django Model Field case insensitive - by default Django can't do this.
Project description
Django Case Insensitive Model Field
pip install django_case_insensitive_field
With Django Case Insensitive Field you can make Django Model Field case insensitive - by default Django can't do this which will make it impossible to add a unique field that will be case insensitive regardeless of case.
Let's assume you have a username
field on your UserModel
which ofcourse would require username
to be unique accross the table
but to Django abc
is different from ABC
because it is case sensitive (meaning: users can use the same username but with different case).
Look at the example below:
from django.db import models
class UserModel(models.Model):
username = models.CharField(max_length=16, unique=True)
user1 = UserModel(username='user1')
user1.save() # will go through
user2 = UserModel(username='User1') # will still go through
user2.save() # will go through
Using Django Case Insensitive Model
To make Django Model Field insensitive, you can use the code below:
No need for installation ot inclusion in app.
# fields.py
from django.db.models import CharField
from django_case_insensitive_field import CaseInsensitiveFieldMixin
class CaseInsensitiveCharField(CaseInsensitiveFieldMixin, CharField):
"""[summary]
Makes django CharField case insensitive \n
Extends both the `CaseInsensitiveMixin` and CharField \n
Then you can import
"""
def __init__(self, *args, **kwargs):
super(CaseInsensitiveFieldMixin, self).__init__(*args, **kwargs)
# models.py
from .fields import CaseInsensitiveCharField
class UserModel(models.Model):
username = CaseInsensitiveCharField(max_length=16, unique=True)
user1 = UserModel(username='user1')
user1.save() # will go through
user2 = UserModel(username='User1')
user2.save() # will not go through
Note:
All values are converted to lowercase before insertion and extraction from database.
Compatibility
- Compatible with every database - POSTGRESQL, SQLITE, MYSQL etc.
- Compatible with Django 2+, 3+
Dependencies
Holla! No dependecy. Lightweight!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django_case_insensitive_field-1.0.7.tar.gz
.
File metadata
- Download URL: django_case_insensitive_field-1.0.7.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e2502a932cf50a727abecc73a141edb75f740933ebbf5ae8745bcfadd9c3029 |
|
MD5 | f8acb37273db1646c4710a5a2efd18cb |
|
BLAKE2b-256 | 9618d77815f85a2ac0f0188a0a80da344e0e2d4eca4eadc73afface0f9320f1f |
File details
Details for the file django_case_insensitive_field-1.0.7-py3-none-any.whl
.
File metadata
- Download URL: django_case_insensitive_field-1.0.7-py3-none-any.whl
- Upload date:
- Size: 3.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9415a2ad80168e3f115a8edce0484fa6ee11a58eb3b8d41c282ea61abad80d93 |
|
MD5 | 21434fbbfaed8fa313440032ab3c0984 |
|
BLAKE2b-256 | d08fdb3db9b65da0876af3f5fdb659d8d30ceb7eddde4740118c6ccd18c75b7c |