Reputation: 1368
I have a Django model:
projectId = models.CharField(max_length=250)
interfaceVersion = models.CharField(max_length=20,blank=False,verbose_name = "InterFace Version")
dataSetVersion = models.SmallIntegerField(blank=False , verbose_name= "Data Set Version")
numberOfRetries = models.IntegerField(null = True ,blank = True , verbose_name= "Number of Retries")
retryTimeInterval = models.IntegerField(null = True ,default=30 , verbose_name= "Retry Time Interval")
If I change the value of numberOfRetries
or retryTimeInterval
and save it then interfaceversion
should be autoincrement. How to do that?
Upvotes: 1
Views: 281
Reputation: 19922
You can use Signals for this matter.
from django import dispatch
from django.db.models.signals import pre_save
# import your model
@dispatch.receiver(pre_save, sender=MyModel)
def my_pre_save_tasks(sender, instance, **kwargs):
old = MyModel.objects.get(pk=instance.pk)
if old.numberOfRetries != instance.numberOfRetries or old.retryTimeInterval != instance.retryTimeInterval:
instance.interfaceversion += 1
Upvotes: 1