Ticket #7789: 7789_fields.diff

File 7789_fields.diff, 1.5 KB (added by arne, 16 years ago)

Proposed fix for the problem

  • db/models/fields/__init__.py

     
    515515        return super(BooleanField, self).formfield(**defaults)
    516516
    517517class CharField(Field):
     518    def __init__(self, *args, **kwargs):
     519        super(CharField, self).__init__(*args, **kwargs)
     520        if self.unique:
     521            self.binary = "BINARY"
     522        else:
     523            self.binary = ""
     524
    518525    def get_manipulator_field_objs(self):
    519526        return [oldforms.TextField]
    520527
  • db/backends/mysql/creation.py

     
    55DATA_TYPES = {
    66    'AutoField':         'integer AUTO_INCREMENT',
    77    'BooleanField':      'bool',
    8     'CharField':         'varchar(%(max_length)s)',
     8    'CharField':         'varchar(%(max_length)s) %(binary)s',
    99    'CommaSeparatedIntegerField': 'varchar(%(max_length)s)',
    1010    'DateField':         'date',
    1111    'DateTimeField':     'datetime',
     
    2020    'PhoneNumberField':  'varchar(20)',
    2121    'PositiveIntegerField': 'integer UNSIGNED',
    2222    'PositiveSmallIntegerField': 'smallint UNSIGNED',
    23     'SlugField':         'varchar(%(max_length)s)',
     23    'SlugField':         'varchar(%(max_length)s) BINARY',
    2424    'SmallIntegerField': 'smallint',
    2525    'TextField':         'longtext',
    2626    'TimeField':         'time',
Back to Top