Makes a call to Google's geocoder and returns the latitude and longitude as a string or returns an empty string. Called by the save method to save the lat and long to the db to be used when rendering maps on the frontend. Reduces the number of calls to geocoder by calling only when saving, not on every viewing of the object.
Be sure to import *urllib* and the project's *settings*, and to define GOOGLE_API_KEY in settings.py.
**Example:**
def save(self):
location = "%s+%s+%s+%s" % (self.address, self.city, self.state, self.zip_code)
self.lat_long = get_lat_long(location)
if not self.lat_long:
location = "%s+%s+%s" % (self.city, self.state, self.zip_code)
self.lat_long = get_lat_long(location)
super(Foo, self).save()
- google-maps
- geocode
- google-api
- latitude
- longitude
This is an override the save method of our Photo model. This new save method essentially takes the image, thumbnails it into our various sets of dimensions (for … in self.IMAGE_SIZES…), and save each one (into its own ImageField) before finally call the overwritten method to save the original image.
Yes, the dimensions are hardcoded, and there is currently not a way to regenerate them in different sizes, but one shouldn't be that hard to come up with, because you just could just load each photo object to regenerate, then save it again (or something along those lines).
mattpdx helped a lot with figuring out this code.