How to update relation OneToOneField
field in override save
update working in object.create()
but not working in .save()
def save(self, *args, **kwargs):
self.wallet.wallet_inventory = 50
self.wallet.save()
super(MonthlyBuyerOrder, self).save(*args, **kwargs)
models.py
class OrdersGift(models.Model):
minPrice = models.IntegerField(null=False, blank=False, default=0)
giftPrice = models.IntegerField(null=False, blank=False, default=0)
gift_description = models.TextField(null=True, max_length=250)
class Meta:
ordering = ['minPrice']
class BuyerUserWallet(models.Model):
buyer = models.OneToOneField(User, on_delete=models.CASCADE, null=False)
joined = models.DateField(auto_now_add=True, blank=False, null=False)
success_order = models.BigIntegerField(blank=False, null=False, default=0)
unSuccess_order = models.BigIntegerField(blank=False, null=False, default=0)
total_order = models.BigIntegerField(blank=False, null=False, default=0)
wallet_inventory = models.IntegerField(blank=False, null=False, default=0)
use_gift_order = models.ManyToManyField(BuyerOrders)
class MonthlyBuyerOrder(models.Model):
wallet = models.ForeignKey(BuyerUserWallet, blank=False, null=False, on_delete=models.CASCADE)
start_time = models.DateField(auto_now_add=True, blank=False, null=False)
monthly_order_total = models.BigIntegerField(blank=False, null=False, default=0)
success_orders = models.ManyToManyField(BuyerOrders)
gift = models.ForeignKey(OrdersGift, null=True, blank=True, on_delete=models.SET_NULL)
giftPrice = models.IntegerField(null=False, blank=False, default=0)
def save(self, force_insert=False,
force_update=False, using=None, update_fields=None):
self.wallet.wallet_inventory = 120
self.wallet.save()
super(MonthlyBuyerOrder, self).save(force_insert=False,
force_update=False, using=None, update_fields=None)
custom save function also does not work
It should work by both method save_base or save. In the original question, you were defining save_base and overriding that from super().save(*args, **kwargs)