Reputation: 35
I started car fleet app and created a few models in models related file, I did models hierarchy that on top I have the car brand, below ForeignKey related car models to each brand, and ForeignKey for each car id that eventually consists the car inventory, which is called "class CarPool", in this model I have value "car_sale_status = models.BooleanField(default=False)", what I would like to achieve is each time I create an instance from associated ForeignKey of the seller will update automatically "car_sale_status = models.BooleanField(default=False)" to True
Please advice
Thanks
class CarPool(models.Model):
# Relationship Fields
car_inventory = models.ForeignKey(
'cardealer.CarTypes',
on_delete=models.CASCADE, related_name="carpools",
)
car_id = models.CharField(max_length=30,default="")
car_location = GeopositionField()
car_sale_status = models.BooleanField(default=False)
YEAR_CHOICES = []
for r in range(1980, (datetime.datetime.now().year+1)):
YEAR_CHOICES.append((r,r))
year_manufacture = models.IntegerField(('year_manufacture'), choices=YEAR_CHOICES, default=datetime.datetime.now().year)
def __str__(self):
return self.car_id
def __unicode__(self):
return self.car_inventory
class CustomerBuyer(models.Model):
buyer_car_buy = models.ForeignKey(
'cardealer.CarPool',
on_delete=models.CASCADE, related_name="customer_buyer",default='0'
)
buyer_private_name = models.CharField(max_length=80,default='')
buyer_family_name = models.CharField(max_length=80,default='')
buyer_private_id = models.IntegerField(default=0)
transaction_date = models.DateTimeField(default=datetime.datetime.now())
transaction_amount = models.IntegerField(default=0)
def __str__(self):
return self.buyer_private_name + ' '+ self.buyer_family_name
def __unicode__(self):
return self.buyer_private_name + ' '+ self.buyer_family_name
Upvotes: 0
Views: 157
Reputation: 362
if I understand you correctly, simply expand the 'save' method
class CustomerBuyer(models.Model):
buyer_car_buy = models.ForeignKey(
'cardealer.CarPool',
on_delete=models.CASCADE, related_name="customer_buyer",default='0'
)
buyer_private_name = models.CharField(max_length=80,default='')
buyer_family_name = models.CharField(max_length=80,default='')
buyer_private_id = models.IntegerField(default=0)
transaction_date = models.DateTimeField(default=datetime.datetime.now())
transaction_amount = models.IntegerField(default=0)
def __str__(self):
return self.buyer_private_name + ' '+ self.buyer_family_name
def __unicode__(self):
return self.buyer_private_name + ' '+ self.buyer_family_name
def save(self, *arg, **kwargs):
super(CustomerBuyer, self).save(*args, **kwargs)
self.buyer_car_buy.car_sale_status = True
self.buyer_car_buy.save()
Upvotes: 1