Django Admin-更改字段模型并自动更新另一个模型



好吧,我有一个VagasUsuarios模型和Questionario模型。我希望当我通过django admin更新Questionario.pontuacao_questionario字段时,我的另一个VagaUsuarios.pontuacao_vaga字段也会更新。有办法做到这一点吗?

感谢收听=(

我的型号:

class Questionario(models.Model):
usuario                 = models.ForeignKey(Contas, on_delete=models.CASCADE)
[...]
pontuacao_questionario  = models.DecimalField(max_digits=5, decimal_places=2, null=True, blank=True,verbose_name="Pontuacao do Questionário")
class VagasUsuarios(models.Model):
usuario                 = models.ForeignKey(Contas, on_delete=models.CASCADE)
[...]
pontuacao_vaga          = models.DecimalField(max_digits=5, decimal_places=2, verbose_name="Pontuacao da Vaga")

您可以通过信号来实现这一点。

示例:

from django.db.models.signals import post_save
from django.dispatch import receiver
from myapp.models import Questionario, VagasUsuarios

@receiver(post_save, sender=Questionario)
def my_handler(sender, instance, **kwargs):
obj = VagasUsuarios.objects.get(...)
obj.pontuacao_vaga = instance.pontuacao_questionario
obj.save()

另一种方法是覆盖模型的save()(或者更确切地说是clean()(方法,当它被更新以获取所有相关的VagasUsuarios-对象时,您需要更新和更新它们。

关于clean()的注意事项:除非使用Django管理员,否则必须自己调用clean方法。