You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.1 KiB
35 lines
1.1 KiB
from django.conf import settings |
|
from django.db.models.fields import Field |
|
|
|
class USStateField(Field): |
|
def get_internal_type(self): |
|
return "USStateField" |
|
|
|
def db_type(self): |
|
if settings.DATABASE_ENGINE == 'oracle': |
|
return 'CHAR(2)' |
|
else: |
|
return 'varchar(2)' |
|
|
|
def formfield(self, **kwargs): |
|
from django.contrib.localflavor.us.forms import USStateSelect |
|
defaults = {'widget': USStateSelect} |
|
defaults.update(kwargs) |
|
return super(USStateField, self).formfield(**defaults) |
|
|
|
class PhoneNumberField(Field): |
|
def get_internal_type(self): |
|
return "PhoneNumberField" |
|
|
|
def db_type(self): |
|
if settings.DATABASE_ENGINE == 'oracle': |
|
return 'VARCHAR2(20)' |
|
else: |
|
return 'varchar(20)' |
|
|
|
def formfield(self, **kwargs): |
|
from django.contrib.localflavor.us.forms import USPhoneNumberField |
|
defaults = {'form_class': USPhoneNumberField} |
|
defaults.update(kwargs) |
|
return super(PhoneNumberField, self).formfield(**defaults) |
|
|
|
|