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
Hashes for django_case_insensitive_field-1.0.7.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e2502a932cf50a727abecc73a141edb75f740933ebbf5ae8745bcfadd9c3029 |
|
MD5 | f8acb37273db1646c4710a5a2efd18cb |
|
BLAKE2b-256 | 9618d77815f85a2ac0f0188a0a80da344e0e2d4eca4eadc73afface0f9320f1f |
Hashes for django_case_insensitive_field-1.0.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9415a2ad80168e3f115a8edce0484fa6ee11a58eb3b8d41c282ea61abad80d93 |
|
MD5 | 21434fbbfaed8fa313440032ab3c0984 |
|
BLAKE2b-256 | d08fdb3db9b65da0876af3f5fdb659d8d30ceb7eddde4740118c6ccd18c75b7c |