I've done it before using a post save signal, although I had lat,lng = NULL in the schema so that differs from your request here. After saving, I would issue an update. I forget why I didn't use a pre-save signal.
Aside from signals, you may also be able to use a model field default with a callable to set the lat/lng of the FarmersMarket object. It's an idea I haven't tested, so I'm not positive it will work. You could write some geocoding middleware that sets request.POST data in some way as it passes through. I don't really like this solution since it is kind of "magical." Brian On Mon, Oct 17, 2011 at 3:30 PM, Jeff Heard <[email protected]>wrote: > class FarmersMarket(ModelForm): > class Meta: > model = models.FarmersMarket > exclude = ('location',) > > def clean(self): > place, (lat, lng) = _g.geocode(self.cleaned_data['address']) > self.cleaned_data['location'] = Point(lng,lat) > return self.cleaned_data > > ---- > > Here's my code minus the exception handling. Now what I *want* to > have happen is that the models.FarmersMarket.location field on the > model is set sometime shortly after the form is submitted by the user, > by way of geocoding the data, rather than having them tediously enter > a POINT wkt string in the textarea field. So my idea was to put a > call to geopy.Google.geocode in FarmersMarket.self.clean. I can > confirm clean() is getting called, but for some reason, the 'location' > field isn't being set in the model. I get a whine from Django that > the location field cannot be NULL (which is true, it can't). > > Can anyone tell me how I'm supposed to be doing this? I want them to > enter an address on the form, not a latitude/longitude pair. > > -- Jeff > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. > > -- Brian Bouterse ITng Services -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

