我想在将新记录保存到我的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)
有没有办法将这个值作为参数传递给信号?
check_light_status
函数可以接受instance
参数。
来自the docs:
例 保存的实际实例。
更新:你这样说:
instance返回帖子的作者。
我将使用我的演绎力猜测你尝试了print(instance)
并看到了作者。看看你的__str__
实现。
def __str__(self):
return str(self.author)
我会说你在那里破坏了自己;)
啊,好吧得到了:
def check_light_status(sender, instance, **kwargs):
if kwargs['created']: #make sure its a new record
print(instance.lightStatusA)
这将打印我需要运行一些逻辑的字段。