python - 当创建对象的用户被删除时,如何将默认用户添加到对象
问题描述
我的模型在用户删除时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)
解决方案
您可以通过覆盖模型的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)