我想我在这里错过了一些东西,但是在这里。我有一个模型,它是post_save
信号的发送者。
class Book(models.Model):
...
created_at = models.DateTimeField(default=timezone.now)
bought = models.BooleanField(default=False)
@receiver(post_save, sender=Book)
def create_sold_log(sender, instance, **kwargs):
if kwargs['created'] and instance.bought:
print('created and instance.bought')
print('k* created', kwargs['created'])
elif kwargs['created']:
print('created only')
print('k* created', kwargs['created'])
else:
print('else...')
现在每次保存书本对象时,都会触发上述信号。
因此,根据以下数据,在“购买”为True的情况下保存序列化程序之后,kwargs['created']
为True。
data = {
"...": "...",
"bought": True
}
serializer = CustomSerializer(data=data)
if serializer.is_valid():
serializer.save()
从下面的数据中假设,如果bought=False
和我保存了序列化程序,则kwargs['created']
为True。
data = {
"...": "...",
"bought": False
}
serializer = CustomSerializer(data=data)
if serializer.is_valid():
serializer.save()
但是,假设,稍后,如果我将book对象更新为Bought = True并将其保存,则kwargs['created']
仍为True。
book.bought = True
book.save()
我在这里想念什么?有人可以帮我理解。谢谢