你没有一个
但是
物体
update()
. 最好的选择是使用F表达式,因为它在DB上执行,因此具有良好的性能:
from django.db.models import F
@receiver(post_save, sender=Task)
def my_handler(sender, instance, **kwargs):
User.objects.filter(user_type=User.EXECUTER).update(balance=F('balance') + instance.money)
这将更新用户类型为Executer的所有记录,并在一个查询中更新它们的余额。
Django docs update
F expressions
你的
user_type
class User(AbstractUser):
CUSTOMER = 1
EXECUTER = 2
USER_TYPES = (
(CUSTOMER, 'Customer'),
(EXECUTER, 'Executer'),
)
user_type = models.IntegerField(choices=USER_TYPES, default=EXECUTER, verbose_name='Тип полÑзоваÑелÑ')
balance = models.DecimalField(decimal_places=2, max_digits=7, default=0, verbose_name='ÐаланÑ')