[Fixed]-Custom save method on model – django

33👍

def save(self, *args, **kwargs):
    if not self.pk:
        self.set_coords()
    super(Post, self).save(*args, **kwargs)
👤jagm

3👍

I think the correct way to do it is using post_save signal:

def set_coords(sender, **kw):
    model_instance = kw["instance"]
    if kw["created"]:
        toFind = model_instance.address + ', ' + model_instance.city + ', ' + \
        model_instance.province + ', ' + model_instance.postal
        (place, location) = g.geocode(toFind)
        model_instance.lat = location[0]
        model_instance.lng = location[1]
        model_instance.save()
post_save.connect(set_coords, sender=MyModel)

Leave a comment