40 lines
1.2 KiB
Python
Executable File
40 lines
1.2 KiB
Python
Executable File
from django.db.models import CharField
|
|
|
|
from location_field import forms
|
|
|
|
|
|
class BaseLocationField(object):
|
|
def __init__(self, based_field=None, zoom=2, default=None, *args, **kwargs):
|
|
self._based_field = based_field
|
|
self._zoom = zoom
|
|
self._default = default
|
|
self.default = default
|
|
|
|
def formfield(self, **kwargs):
|
|
return super(BaseLocationField, self).formfield(
|
|
form_class=self.formfield_class,
|
|
based_field=self._based_field,
|
|
zoom=self._zoom,
|
|
default=self._default,
|
|
**kwargs)
|
|
|
|
|
|
class PlainLocationField(BaseLocationField, CharField):
|
|
formfield_class = forms.PlainLocationField
|
|
|
|
def __init__(self, based_field=None, zoom=None,
|
|
max_length=63, *args, **kwargs):
|
|
|
|
super(PlainLocationField, self).__init__(based_field=based_field,
|
|
zoom=zoom, *args, **kwargs)
|
|
|
|
CharField.__init__(self, max_length=max_length, *args, **kwargs)
|
|
|
|
|
|
# south compatibility
|
|
try:
|
|
from south.modelsinspector import add_introspection_rules
|
|
add_introspection_rules([], ["^location_field\.models\.PlainLocationField"])
|
|
except:
|
|
pass
|