Login

TinyIntegerField

Author:
Lacour
Posted:
August 15, 2011
Language:
Python
Version:
1.3
Tags:
model db 8-bit-integer MySQL IntegerField tiny-integer
Score:
0 (after 0 ratings)

Django lacks support of MySQL's "tinyint" 8-bit-integer datatype. This snippet gives you a TinyIntegerField and a PositiveTinyIntegerField. Falls back Django's SmallIntegerField if a different database-engine is used

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
class TinyIntegerField(models.SmallIntegerField):
    def db_type(self, connection):
        if connection.settings_dict['ENGINE'] == 'django.db.backends.mysql':
            return "tinyint"
        else:
            return super(TinyIntegerField, self).db_type(connection)

class PositiveTinyIntegerField(models.PositiveSmallIntegerField):
    def db_type(self, connection):
        if connection.settings_dict['ENGINE'] == 'django.db.backends.mysql':
            return "tinyint unsigned"
        else:
            return super(PositiveTinyIntegerField, self).db_type(connection)

More like this

  1. ByteSplitterField by Lacour 4 years ago
  2. Serializing booleans correctly when doing dumpdata from a MySQL database using Django 0.96 by chrj 7 years, 1 month ago
  3. HibernateBooleanField by kivsiak 5 years, 7 months ago
  4. Drop all tables in MySQL database by mpasternacki 5 years, 7 months ago
  5. Arbitrary auto-generated primary keys by gsakkis 5 years, 1 month ago

Comments

Please login first before commenting.