【发布时间】:2019-10-04 17:29:33
【问题描述】:
我想通过单击按钮将记录从NewUsers 模型移动到PendingUsers 模型。移动后,记录应该从NewUsers模型中删除(删除)。
这是模型:
class NewUser(models.Model):
user = models.OneToOneField(User, on_delete = models.CASCADE, default=1)
newuser_name = models.CharField(max_length=50)
newuser_company = models.CharField(max_length=100)
newuser_mobile = models.CharField(max_length=10)
newuser_designation = models.CharField(max_length=50)
newuser_image = models.ImageField(upload_to='userprofile_pics/users/', blank=True)
def __str__(self):
return self.user.email
class PendingUsers(models.Model):
pendinguser = models.OneToOneField(NewUser, on_delete = models.CASCADE, default=1)
def __str__(self):
return self.pendinguser.newuser_name
在按钮点击时,移动记录的代码是:
query_user = get_object_or_404(NewUser, id=id)
pendingUser = PendingUsers()
pendingUser.pendinguser = query_user
pendingUser.save()
并从 NewUsers 中删除它:
NewUser.objects.filter(id=id).delete()
它正在成功地将记录移动到 PendingUsers。但是一旦我从 NewUser 中删除它,它也会自动从 PendingUser 中删除。
任何人都可以帮助我解决如何成功实现这一目标吗?我需要更改我的 PendingUsers 模型吗?
提前致谢!
【问题讨论】:
-
"on_delete = models.CASCADE" 删除链接模型,所以是的,您需要更改模型。
-
通常您可以更改用户状态(不删除),或者您需要将所有字段从新用户复制到待处理用户以避免丢失数据。
-
@VelikiiNehochuha 那么我应该如何设计模型?
-
@VelikiiNehochuha 我认为改变状态会奏效。谢谢!
-
@PrachiSharma stackoverflow.com/a/58241855/8138584
标签: python django django-models django-views