Call a custom python function during each model save

15 views
Skip to first unread message

Harish

unread,
Sep 1, 2009, 6:21:38 AM9/1/09
to Django users
Hi Friends,

I want to call a python function, while saving each model... How can I
do this?

For example.... I have many application in a project....
I have field in each model of the application and I have to access
the field just before the any model object is saved and alter a value
of that field. Here I can use save_model() function, but I want to
write a function once and each time when the model is saved that
function should be called....

Any Idea for this...


Regards
Harish Bhat M

ANIL KARADAĞ

unread,
Sep 1, 2009, 6:29:20 AM9/1/09
to django...@googlegroups.com
you can override model save method:

for example

class Student(models.Model):
    name = models.CharField(blabla)
   
    def save(self, force_insert=False, force_update=False):
        # call spesific python method
        # operations
        super(Student, self).save(force_insert=force_insert, force_update=force_update)


2009/9/1 Harish <harish...@gmail.com>



--
Anıl KARADAĞ
Cihan Information S.C. - Software Development Engineer
GYTE- Computer Engineer. - Master student
http://anilkaradag.info/blog

ankit rai

unread,
Sep 1, 2009, 7:32:23 AM9/1/09
to django...@googlegroups.com
just overide save method
and inside that method call ur function ,do import it

for ex

def save_model():
  call ur function here

  myfunction(xx,aaa,aa)
  obj.save()

ankit rai

unread,
Sep 1, 2009, 7:33:25 AM9/1/09
to django...@googlegroups.com
def save_model(self, request, obj, form, change):
     obj.save()
   urfunction(aa,aa,aa,a)
  

On Tue, Sep 1, 2009 at 3:59 PM, ANIL KARADAĞ <anil.k...@gmail.com> wrote:

Andy Mikhailenko

unread,
Sep 2, 2009, 3:49:53 AM9/2/09
to Django users
Try signals[1], namely pre_save[2]. I would stick to this way instead
of overriding model's save() method.

[1] http://docs.djangoproject.com/en/dev/topics/signals/
[2] http://docs.djangoproject.com/en/dev/ref/signals/#django.db.models.signals.pre_save
Reply all
Reply to author
Forward
0 new messages