微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

信号未保存 Django

如何解决信号未保存 Django

我无法成功保存包含通过信号创建的 ID 的实例 code_nc

class NoConform(BaseModel):
    no_conform = models.CharField(max_length=1500,verbose_name='No Conforme')
    origin = models.CharField(max_length=30,verbose_name='Origen',choices=OriginNoconform.choices)
    correction = models.CharField(max_length=500,verbose_name='Corrección')
    treatment = models.CharField(max_length=30,default='Abierto',verbose_name='Estado',choices=TreatmentNoConform.choices)
    assigned = models.ForeignKey(Process,verbose_name='Proceso',on_delete=models.CASCADE)
    actions = models.CharField(max_length=20,verbose_name='Plan de Acción')
    code_nc = models.CharField(max_length=20,verbose_name='Código')
    response_nc = models.CharField(max_length=150,verbose_name='Responsable')
    evidence = models.FileField(upload_to='no_conform/%Y%m%d',max_length=200,verbose_name='Evidencias Complementarias',null=True,blank=True)
    date_event = models.DateTimeField(verbose_name='Fecha y Hora de Ocurrencia',blank=True)
    nc_resume = models.CharField(max_length=150,verbose_name='Defecto',blank=True)

    def __str__(self):
        return f'{self.nc_resume},{self.id}'

class Meta:
    db_table = 'No_Conform'
    verbose_name = 'No_Conform'
    verbose_name_plural = 'No_Conform'

    @receiver(post_save,sender='noconform.NoConform')
    def post_save_function(sender,instance,**kwargs):
        seq = instance.id
        year = datetime.Now ().strftime('%Y')
        instance.code_nc = 'NC' + year + str (seq)
    
    def save(self,force_insert=False,force_update=False,using=None,update_fields=None,*args,**kwargs):
        user = get_current_user()
        if user is not None:
            if not self.pk:
                self.user_creation = user
            else:
                self.user_updated = user
        return super(NoConform,self).save(*args,**kwargs)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。