GeoDjango PointField admin visualization -
i wondering how change default pointfield visualization (the openstreetmap) in admin enter simple latitude/longitude instead of select point on map?
i looked @ 1 latitude/longitude widget pointfield? not working in way in django 1.6b4
thanks
as bibhas says can override widget used field, simple text input may not usefull. here example full widget can used pointfield of geodjango:
class latlongwidget(forms.multiwidget): """ widget splits point input latitude/longitude text inputs. """ def __init__(self, attrs=none, date_format=none, time_format=none): widgets = (forms.textinput(attrs=attrs), forms.textinput(attrs=attrs)) super(latlongwidget, self).__init__(widgets, attrs) def decompress(self, value): if value: return tuple(value.coords) return (none, none) def value_from_datadict(self, data, files, name): mylat = data[name + '_0'] mylong = data[name + '_1'] try: point = point(float(mylat), float(mylong)) except valueerror: return '' return point and can override model admin:
from django.contrib.gis.db import models geomodels class companyadmin(admin.modeladmin): list_display = ('name', 'approval', 'company_view',) list_filter = ('approval',) formfield_overrides = { geomodels.pointfield: {'widget': latlongwidget}, }
Comments
Post a Comment