Как я могу использовать атрибут внешних ключей в той же модели? - PullRequest
0 голосов
/ 16 июня 2020

Как мне использовать атрибуты автомобиля по умолчанию?

class Orders(models.Model):
    vehicle = models.ForeignKey(Vehicles, on_delete= models.CASCADE)
    exit_km = models.IntegerField(default=vehicle.current_km)

1 Ответ

0 голосов
/ 16 июня 2020

вы можете использовать сигнал post_save https://docs.djangoproject.com/en/3.0/ref/signals/#post -save

вы можете создать объект Order со значением по умолчанию exit_km для любого, а затем в методе сигнала post_save вы можете добавить значение exit_km из поле внешнего ключа транспортного средства.

вы можете использовать ответ на этот вопрос в качестве справки. Django реализация сигнала post_save ()

еще один способ - переопределить метод сохранения класса модели.

def save(self, *args, **kwargs):
    obj = super().save(*args, **kwargs)
    obj.exit_km = obj.vehicle.exit_km
    obj.save()
...