如何解决Django无法使用信号更新第二个字段
当我将客户端添加到“客户端”表时,它会自动添加并带有发送到ClientsBalance的信号。但是ClientsBalance表上的company字段未更新为当前公司(company = user.company),我希望该字段包含当前用户公司。
class Company(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE)
name = models.CharField(max_length=64)
class Client(models.Model):
company = models.ForeignKey('Company',on_delete=models.CASCADE)
name = models.CharField(max_length=256)
class ClientsBalance(models.Model):
company = models.ForeignKey('Company',on_delete=models.CASCADE)
client = models.OneToOneField('Client',on_delete=models.CASCADE,related_name='Client')
def create_client(sender,**kwargs):
if kwargs['created']:
client = ClientsBalance.objects.create(client=kwargs['instance'])
post_save.connect(create_client,sender=Client)
解决方法
客户公司与ClientsBalance公司之间没有关系。您可以像这样更新信号中的值。
client = ClientsBalance.objects.create(client=kwargs['instance'],company=kwargs['instance'].company)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。