Exemple #1
0
    def render(self, name, value, *args, **kwargs):
        # value is either None, a string/unicode value, or a GEOSGeometry
        if value is None:  # no value
            lat, lng = DEFAULT_LAT, DEFAULT_LNG
        else:
            try:
                if isinstance(value, basestring):  # value is unicode/string
                    value = GEOSGeometry(value)
                    lat, lng = value.y, value.x
                elif isinstance(value, dict):
                    lat, lng = value.get('lat'), value.get('lng')
                    #lat, lng = value.get('%s_lat' % name), value.get('%s_lng' % name)
                else:  # value is GEOSGeometry
                    lat, lng = value.y, value.x
            except:
                lat, lng = value, value

        # renders text form elements (for debugging):
        html = self.inner_widget.render(
            'lat',
            lat,
            dict(
                id='id_lat',
                style='width:100px;'))
        html += self.inner_widget.render('lng',
                                         lng,
                                         dict(id='id_lng',
                                              style='width:100px;'))
        return mark_safe(html)