~ubuntu-branches/ubuntu/quantal/python-django/quantal-security

« back to all changes in this revision

Viewing changes to django/contrib/localflavor/us/models.py

  • Committer: Bazaar Package Importer
  • Author(s): Chris Lamb
  • Date: 2010-05-21 07:52:55 UTC
  • mfrom: (1.3.6 upstream)
  • mto: This revision was merged to the branch mainline in revision 28.
  • Revision ID: james.westby@ubuntu.com-20100521075255-ii78v1dyfmyu3uzx
Tags: upstream-1.2
ImportĀ upstreamĀ versionĀ 1.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
from django.conf import settings
2
 
from django.db.models.fields import Field
3
 
 
4
 
class USStateField(Field): 
5
 
    def get_internal_type(self): 
6
 
        return "USStateField" 
7
 
        
8
 
    def db_type(self):
9
 
        if settings.DATABASE_ENGINE == 'oracle':
10
 
            return 'CHAR(2)'
11
 
        else:
12
 
            return 'varchar(2)'
13
 
    
14
 
    def formfield(self, **kwargs): 
15
 
        from django.contrib.localflavor.us.forms import USStateSelect 
16
 
        defaults = {'widget': USStateSelect} 
17
 
        defaults.update(kwargs) 
18
 
        return super(USStateField, self).formfield(**defaults)
19
 
 
20
 
class PhoneNumberField(Field):
21
 
    def get_internal_type(self):
22
 
        return "PhoneNumberField"
23
 
 
24
 
    def db_type(self):
25
 
        if settings.DATABASE_ENGINE == 'oracle':
26
 
            return 'VARCHAR2(20)'
27
 
        else:
28
 
            return 'varchar(20)'
 
2
from django.utils.translation import ugettext_lazy as _
 
3
from django.db.models.fields import CharField
 
4
from django.contrib.localflavor.us.us_states import STATE_CHOICES
 
5
 
 
6
class USStateField(CharField):
 
7
 
 
8
    description = _("U.S. state (two uppercase letters)")
 
9
 
 
10
    def __init__(self, *args, **kwargs):
 
11
        kwargs['choices'] = STATE_CHOICES
 
12
        kwargs['max_length'] = 2
 
13
        super(USStateField, self).__init__(*args, **kwargs)
 
14
 
 
15
class PhoneNumberField(CharField):
 
16
 
 
17
    description = _("Phone number")
 
18
 
 
19
    def __init__(self, *args, **kwargs):
 
20
        kwargs['max_length'] = 20
 
21
        super(PhoneNumberField, self).__init__(*args, **kwargs)
29
22
 
30
23
    def formfield(self, **kwargs):
31
24
        from django.contrib.localflavor.us.forms import USPhoneNumberField
32
25
        defaults = {'form_class': USPhoneNumberField}
33
26
        defaults.update(kwargs)
34
27
        return super(PhoneNumberField, self).formfield(**defaults)
35