Django OneToOneField 和信号
Django OneToOneField and signals
我有一个名为 DeviceStatus
的模型,它与另一个名为 Device
的模型有 OneToOne
关系。我想在保存之前将 id
传递给 DeviceStatus
对象,但我得到的只是一个 ForwardManyToOneDescriptor
对象。
class DeviceStatus(TimeStampedModel):
device = models.OneToOneField(Device)
# other fields
def __unicode__(self):
return u'{}'.format(self.device)
def copy_to_archive(**kwargs):
print DeviceStatus.device
pre_save.connect(copy_to_archive)
有人可以指导我如何获取传递的设备 ID 吗? TIA
应该是实例方法
def copy_to_archive(self, **kwargs):
print self.device
这样连接信号也不行。但这是不同的问题。
正在回答评论并将我在评论中的回答扩展到 post
这是需要完成的工作
class MyClass(models.Model):
#....
@classmethod
def before_save(cls, sender, instance, *args, **kwargs):
instance.test_field = "It worked"
pre_save.connect(MyClass.before_save, sender=MyClass)
Django 1.2: How to connect pre_save signal to class method
我有一个名为 DeviceStatus
的模型,它与另一个名为 Device
的模型有 OneToOne
关系。我想在保存之前将 id
传递给 DeviceStatus
对象,但我得到的只是一个 ForwardManyToOneDescriptor
对象。
class DeviceStatus(TimeStampedModel):
device = models.OneToOneField(Device)
# other fields
def __unicode__(self):
return u'{}'.format(self.device)
def copy_to_archive(**kwargs):
print DeviceStatus.device
pre_save.connect(copy_to_archive)
有人可以指导我如何获取传递的设备 ID 吗? TIA
应该是实例方法
def copy_to_archive(self, **kwargs):
print self.device
这样连接信号也不行。但这是不同的问题。
正在回答评论并将我在评论中的回答扩展到 post
这是需要完成的工作
class MyClass(models.Model):
#....
@classmethod
def before_save(cls, sender, instance, *args, **kwargs):
instance.test_field = "It worked"
pre_save.connect(MyClass.before_save, sender=MyClass)
Django 1.2: How to connect pre_save signal to class method