Форум сайта python.su
Вот по этой доке
http://docs.djangoproject.com/en/dev/howto/custom-model-fields/#howto-custom-model-fields
создал такой пользовательский тип
class FixCharField(models.Field):
def __init__(self, max_length, *args, **kwargs):
self.max_length = max_length
super(FixCharField, self).__init__(*args, **kwargs)
def db_type(self):
return 'char(%s)' % self.max_length
fieldname = FixCharField(8)
fieldname char(None)
return 'char(%d)' % self.max_length
def __init__(self, max_length, *args, **kwargs):
self.max_length = 8 #max_length
class FixCharField(models.Field):
def __init__(self, max_length, *args, **kwargs):
self.max_length = '10' #max_length
super(FixCharField, self).__init__(*args, **kwargs)
def db_type(self):
return 'char(%s)' % self.max_length
Отредактировано (Июль 15, 2009 17:01:47)
Офлайн
Пока, решил задачу таким образом
class FixCharField(models.CharField):
def __init__(self, *args, **kwargs):
super(FixCharField, self).__init__(*args, **kwargs)
def db_type(self):
return "char(%s)" % self.max_length
field=FixCharField(max_length=8)
Офлайн
Вот пример из пакета django.db.models.fields:
class EmailField(CharField):
def __init__(self, *args, **kwargs):
kwargs['max_length'] = kwargs.get('max_length', 75)
CharField.__init__(self, *args, **kwargs)
class FixCharField(models.Field):
def __init__(self, max_length, *args, **kwargs):
kwargs['max_length'] = 10
super(FixCharField, self).__init__(*args, **kwargs)
def db_type(self):
return 'char(%s)' % self.max_length
class FixCharField(models.Field):
def __init__(self, max_length, *args, **kwargs):
super(FixCharField, self).__init__(*args, **kwargs)
self.max_length = 10
Офлайн