Changeset 7026
- Timestamp:
- 01/18/08 10:38:51 (6 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/gis/django/contrib/gis/oldforms/__init__.py
r5795 r7026 1 from django.core.validators import ValidationError 1 2 from django.oldforms import LargeTextField 3 from django.contrib.gis.geos import GEOSException, GEOSGeometry 2 4 3 5 class WKTField(LargeTextField): 4 6 "An oldforms LargeTextField for editing WKT text in the admin." 5 7 def __init__(self, *args, **kwargs): 8 super(WKTField, self).__init__(*args, **kwargs) 9 # Overridding the validator list. 10 self.validator_list = [self.isValidGeom] 11 6 12 def render(self, data): 7 13 # Returns the WKT value for the geometry field. When no such data 8 14 # is present, return None to LargeTextField's render. 9 if not data: 15 if isinstance(data, GEOSGeometry): 16 return super(WKTField, self).render(data.wkt) 17 elif isinstance(data, basestring): 18 return super(WKTField, self).render(data) 19 else: 10 20 return super(WKTField, self).render(None) 11 else: 12 return super(WKTField, self).render(data.wkt) 21 22 def isValidGeom(self, field_data, all_data): 23 try: 24 g = GEOSGeometry(field_data) 25 except GEOSException: 26 raise ValidationError('Valid WKT or HEXEWKB is required for Geometry Fields.') 27 13 28 14 29
