当新记录保存到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)
是否可以通过某种方式将此值作为信号的参数传递?
答案 0 :(得分:1)
check_light_status
函数可以接受instance
参数。
来自the docs:
实例
实际实例正在保存。
更新:您说的是
instance返回帖子的作者。
我将使用推论的力量来猜测您尝试了print(instance)
并看到了作者。查看您的__str__
实现。
def __str__(self):
return str(self.author)
我会说你在那儿破坏了自己;)
答案 1 :(得分:0)
好吧:
def check_light_status(sender, instance, **kwargs):
if kwargs['created']: #make sure its a new record
print(instance.lightStatusA)
这将打印我需要对其进行一些逻辑处理的字段。