Я использую Django 3.0.4. У меня есть 6 таблиц (автомобиль, трекер, водитель, контракт, счет и счет). Существует много счетов для каждой учетной записи (1-M). Для каждого отдельного контракта открывается один счет (1-1). Каждый Контракт состоит из Водителя, и комбинация Транспортное средство и Водитель-Транспортное средство может иметь только 1 Контракт. Каждое транспортное средство оснащено одним трекером (1-1). Я намереваюсь проверить статус Счета-фактуры (я уже сделал это), и для навигации по этой конкретной записи Счета-фактуры мне нужно найти конкретный порядок транспортных средств, чтобы обновить статус Трекера. Tracker не имеет никакого отношения к Invoice и select_related, похоже, не работает. Ваша помощь приветствуется.
class Vehicle(models.Model):
registration = models.CharField(max_length=7, unique = True)
make = models.CharField(max_length=16)
model = models.CharField(max_length=16)
class Tracker(models.Model):
vehicle = models.OneToOneField('Vehicle', on_delete=models.CASCADE)
msisdn = models.PositiveIntegerField()
status = models.CharField(max_length=16)
class Driver(models.Model):
first_name = models.CharField(max_length=16)
middle_name = models.CharField(max_length=16, blank=True)
last_name = models.CharField(max_length=16)
class Contract(models.Model):
vehicle = models.ForeignKey('Vehicle', on_delete=models.CASCADE)
driver = models.ForeignKey('Driver', on_delete=models.CASCADE)
start_date = models.DateTimeField(auto_now=False, auto_now_add=False)
end_date = models.DateTimeField(auto_now=False, auto_now_add=False)
class Account(models.Model):
contract = models.OneToOneField('Contract', on_delete=models.CASCADE)
weekly_amount = models.PositiveSmallIntegerField()
weeks = models.PositiveSmallIntegerField()
paid_amount = models.PositiveIntegerField()
class Invoice(models.Model):
account = models.ForeignKey('Account', on_delete=models.CASCADE)
amount = models.PositiveIntegerField()
status = models.CharField(max_length=16, choices=INVOICE_STATUS, default=UNPAID)