我有两个模型,为简单起见,我们将它们称为Owner和Player。我需要动态更新所有者拥有的玩家总数。我已经找到了一些代码(来自此post)来将数字增加一个,但是如果一个玩家不再由该拥有者拥有,我如何使它工作呢?我还找到了一些代码,该代码将通过玩家价格字段中的价格减少所有者的模型字段,但是还没有找到一种方法,如果玩家不再由该所有者拥有该钱,则可以返还该钱。
models.py
class Owner(models.Model):
name = models.CharField(
'Name',
max_length=50,
)
money = models.DecimalField(
'Money',
max_digits=8,
decimal_places=2,
blank=True,
null=True,
)
playersClaimed = models.IntegerField(
'Players Claimed',
blank=True,
null=True,
)
class Player(models.Model):
name = models.CharField(
'Name',
max_length=50,
)
price = models.DecimalField(
'Cost of Acquisition'
max_digits=8,
decimal_places=2,
blank=True,
null=True,
)
owner = models.ForeignKey(
Owner,
on_delete=models.SET_NULL,
null=True,
blank=True,
)
我尝试将其添加到我的admin.py中,以便可以在管理面板中尝试它:
admin.py
class PlayerAdmin(admin.ModelAdmin):
...
def save_model(self, request, obj, form, change):
obj.owner.playersClaimed += 1
obj.owner.money -= obj.price
obj.owner.save()
super().save_model(request, obj, form, change)
任何帮助,将不胜感激。