0

How can I use the vehicle's attributes in default ?

class Orders(models.Model):
    vehicle = models.ForeignKey(Vehicles, on_delete= models.CASCADE)
    exit_km = models.IntegerField(default=vehicle.current_km)
Erik Cederstrand
  • 9,643
  • 8
  • 39
  • 63
demhat
  • 3
  • 2

1 Answers1

0

you can use post_save signal https://docs.djangoproject.com/en/3.0/ref/signals/#post-save

you can create Order object with exit_km default value to any and then in post_save signal method you can add the value of exit_km from the vehicle foreign key field.

you can use the answer of this question as reference. Django post_save() signal implementation

one more way is to override the save method of model class.

def save(self, *args, **kwargs):
    obj = super().save(*args, **kwargs)
    obj.exit_km = obj.vehicle.exit_km
    obj.save()
Sami
  • 361
  • 1
  • 7