Tiny integer fields

When working with integers that only take small values, Django’s default integer fields can be a bit wasteful as smallest field class, SmallIntegerField, takes 2 bytes. MySQL’s smallest integer data type, TINYINT, is 1 byte, half the size! The below field classes allow you to use the TINYINT and TINYINT UNSIGNED types in Django.

Docs: MySQL TINYINT / MariaDB.

class django_mysql.models.TinyIntegerField(**kwargs)

A subclass of Django’s IntegerField that uses a MySQL TINYINT type for storage. It supports signed integer values ranging from -128 to 127.

Example:

from django.db import models
from myapp.fields import TinyIntegerField


class ExampleModel(models.Model):
    tiny_value = TinyIntegerField()
class django_mysql.models.PositiveTinyIntegerField(**kwargs)

A subclass of Django’s PositiveIntegerField that uses a MySQL TINYINT UNSIGNED type for storage. It supports unsigned integer values ranging from 0 to 255.

Example:

from django.db import models
from myapp.fields import PositiveTinyIntegerField


class ExampleModel(models.Model):
    positive_tiny_value = PositiveTinyIntegerField()