如何使用 Django 信号访问字段

当新记录保存到我的 Django 数据库中时,我想检查字段 (lightStatusA) 的值。我觉得我已经阅读了 10 次文档,但仍然无法掌握如何获得它。这是我当前的 models.py 代码:


from django.db import models

from accounts.models import Customer

from django.conf import settings

from django.contrib.auth import get_user_model

from django.db.models.signals import post_save


class Data(models.Model):

    author = models.ForeignKey(get_user_model(),on_delete=models.CASCADE,)

    tempData= models.CharField(max_length=50,blank=True,)

    humidData= models.CharField(max_length=50,blank=True,)

    lightStatusA= models.BooleanField(default=True,) 

    dateTime = models.DateTimeField(auto_now_add=True)


    def __str__(self):

        return str(self.author)


def check_light_status(sender, **kwargs):

    if kwargs['created']: #make sure its a new record

        #need logic to grab instance.lightStatusA and check it's value


post_save.connect(check_light_status, sender = Data)

有没有办法将此值作为参数传递给信号?


catspeake
浏览 117回答 2
2回答

皈依舞

啊,明白了:def check_light_status(sender, instance, **kwargs):     if kwargs['created']: #make sure its a new record         print(instance.lightStatusA)这将打印我需要对其运行一些逻辑的字段。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python