我有一个名为DeviceStatus
的模型,与另一个名为OneToOne
的模型有Device
关系。我希望在保存之前将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
答案 0 :(得分:3)
应该是实例方法
def copy_to_archive(self, **kwargs):
print self.device
同样连接这样的信号也行不通。但这是另一个问题。
回复评论并在评论中扩展我的答案以发布
这需要做什么
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)