SHOW:
|
|
- or go back to the newest paste.
1 | class Coordinates(object): | |
2 | ||
3 | def __init__(self, lng, lat): | |
4 | super(Coordinates, self).__init__() | |
5 | self.lng = float(lng) | |
6 | self.lat = float(lat) | |
7 | ||
8 | def to_sql(self): | |
9 | return "GeomFromText('POINT(%s %s)')" % (self.lng, self.lat) | |
10 | ||
11 | def __unicode__(self): | |
12 | return 'Coordinates(lat=%s, lng=%s)' % (self.lat, self.lng) | |
13 | ||
14 | @staticmethod | |
15 | def to_python(value): | |
16 | - | return Coordinates(0, 0)# value |
16 | + | return value |
17 | - | lat = None |
17 | + | # write the rest when i know what to do |
18 | - | lng = None |
18 | + | return Coordinates(0, 0) |
19 | ||
20 | - | if isinstance(value, (list, tuple)): |
20 | + | |
21 | - | lat, lng = value |
21 | + | |
22 | - | return Coordinates(lat, lng) |
22 | + | |
23 | __metaclass__ = models.SubfieldBase | |
24 | - | if isinstance(value, (str, unicode)): |
24 | + | |
25 | - | lat, lng = value.split(' ') |
25 | + | |
26 | - | return Coordinates(lat, lng) |
26 | + | |
27 | super(GeometryField, self).__init__(*args, **kwargs) | |
28 | self.spatial = True | |
29 | ||
30 | def db_type(self, connection): | |
31 | return 'GEOMETRY' | |
32 | ||
33 | def to_python(self, value): | |
34 | if isinstance(value, Coordinates): | |
35 | return value | |
36 | ||
37 | return Coordinates.to_python(value) | |
38 | ||
39 | def get_prep_value(self, value): | |
40 | return self.to_python(value) | |
41 | ||
42 | def get_db_prep_save(self, value, connection): | |
43 | return self.to_python(value).to_sql() | |
44 | ||
45 | def value_to_string(self, obj): | |
46 | value = self._get_val_from_obj(obj) | |
47 | return self.get_db_prep_value(value) |