【问题标题】:Django cannot update second field with signalDjango 无法用信号更新第二个字段
【发布时间】:2021-02-23 15:48:51
【问题描述】:

当我将客户端添加到客户端表时,它会自动添加到 ClientsBalance 的信号。但是 ClientsBalance 表上的公司字段没有更新为当前公司(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)

【问题讨论】:

    标签: django django-models django-views django-forms django-signals


    【解决方案1】:

    Client 的公司与 ClientsBalance 的公司之间没有关系。您可以像这样更新信号中的值。

     client = ClientsBalance.objects.create(client=kwargs['instance'], company=kwargs['instance'].company)
    

    【讨论】:

      猜你喜欢
      • 2017-11-16
      • 1970-01-01
      • 2019-06-21
      • 2020-08-13
      • 2021-02-11
      • 1970-01-01
      • 2021-11-19
      • 2021-06-08
      • 2012-09-10
      相关资源
      最近更新 更多