【发布时间】:2018-12-31 08:37:11
【问题描述】:
我在我的项目中创建了软删除,它工作正常。但问题是我使用User 内置模型和OneToOneField 和UserProfile。现在soft_delete 函数在UserProfile 模型中,我使用generic.DeleteView 删除用户。问题是我无法将User 的对象传递给UserProfile 以将user_is_deleted 设置为True。这是我的代码。
Views.py
class UserDeleteView(LoginRequiredMixin, generic.DeleteView):
model = User
template_name = 'users/user_confirm_delete.html'
success_url = '/users/'
def delete(self, request, *args, **kwargs):
self.object = self.get_object()
self.object.soft_delete()
return HttpResponseRedirect(self.get_success_url())
模型.py
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
user_company = models.ForeignKey(Company, on_delete=models.CASCADE)
user_role = models.ForeignKey(Roles, on_delete=models.CASCADE)
user_is_deleted = models.BooleanField(default=False)
user_deleted_at = models.DateTimeField(blank=True, null=True)
def soft_delete(self):
self.user_is_deleted = True
self.user_deleted_at = timezone.now() - tdelta(days=-1)
self.save()
【问题讨论】:
标签: django django-models django-forms django-templates django-views