Ashish Kumar Verma
Ashish Kumar Verma

Reputation: 1368

Auto increment a value in Django with respect to the other element

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

Answers (1)

Wtower
Wtower

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

Related Questions