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)
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)
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()