首页 > 解决方案 > 当创建对象的用户被删除时,如何将默认用户添加到对象

问题描述

我的模型在用户删除时Tasks包含user外键,当创建者被删除时,如何将另一个用户添加到该对象作为备份用户?

first_user = User.objects.get(username='nagah')


class Task(models.Model):
    taskname = models.CharField(max_length=30)
    created = models.DateTimeField(auto_now=True)
    is_complete = models.BooleanField(default=False)
    user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, default=first_user.id)

标签: pythondjangodjango-models

解决方案


您可以通过覆盖模型的save()方法来做到这一点Task

class Task(models.Model):
    # your fields here

    def save(self, *args, **kwargs):
        # check if it's an existing object with no user
        if self.id and not self.user:
            first_user = User.objects.get(username='nagah')
            self.user = first_user
        super(Task, self).save(*args, **kwargs)



推荐阅读