- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
是否有一些优雅的解决方案来使用 Django 的 DeleteView 而不是实际删除对象,将它们标记为非事件状态?我喜欢 DeleteView 的简单性,但希望将数据保留在后端,而不是将其删除。
最佳答案
优雅的解决方案是覆盖 Model
和 Manager
以在 delete
上更新字段。这是一个作为抽象模型的实现,因此它可以被任何其他模型扩展。如果您的模型中已经有删除字段,您可以根据需要修改它。
class SoftDeletionModel(models.Model):
deleted_at = models.DateTimeField(blank=True, null=True)
objects = SoftDeletionManager()
all_objects = SoftDeletionManager(alive_only=False)
class Meta:
abstract = True
def delete(self):
self.deleted_at = timezone.now()
self.save()
def hard_delete(self):
super(SoftDeletionModel, self).delete()
class SoftDeletionManager(models.Manager):
def __init__(self, *args, **kwargs):
self.alive_only = kwargs.pop('alive_only', True)
super(SoftDeletionManager, self).__init__(*args, **kwargs)
def get_queryset(self):
if self.alive_only:
return SoftDeletionQuerySet(self.model).filter(deleted_at=None)
return SoftDeletionQuerySet(self.model)
def hard_delete(self):
return self.get_queryset().hard_delete()
class SoftDeletionQuerySet(QuerySet):
def delete(self):
return super(SoftDeletionQuerySet, self).update(deleted_at=timezone.now())
def hard_delete(self):
return super(SoftDeletionQuerySet, self).delete()
def alive(self):
return self.filter(deleted_at=None)
def dead(self):
return self.exclude(deleted_at=None)
有关说明,请参阅 Soft Deletion in Django
关于python - DeleteView 标记为不活动而不是删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52767988/
我正在使用与文档中解释的完全一样的 DeleteView https://docs.djangoproject.com/en/2.0/ref/class-based-views/generic-edi
是否有一些优雅的解决方案来使用 Django 的 DeleteView 而不是实际删除对象,将它们标记为非事件状态?我喜欢 DeleteView 的简单性,但希望将数据保留在后端,而不是将其删除。 最
我有一个删除 View : class LectureDelete(SuccessMessageMixin, DeleteView): model = Lecture success_message
我正在尝试编写一个 DeleteView 来删除帖子而不显示确认页面。 Del - delete button .如何立即删除对象? urls.py: urlpatterns = [ # ur
我刚刚学习了 CreateView、UpdateView 和 DeleteView 模型,然后我让它们全部工作起来。我可以更改我的对象,我可以删除它们,但是在删除一个对象后,我尝试创建另一个对象,并创
我正在使用 Django 中的 DeleteView 删除不同模型中的对象。 问题是我不希望对象被完全删除,而只是隐藏起来。首先,我认为保留我的 View 是有意义的,而不是重写每个模型中的 dele
我找到了这个 DeleteView。任何人都可以告诉我 return HttpResponseNotAllowed(['POST']) 是做什么用的?我是否也应该将它添加到我自己的 DeleteVie
我在模板中使用 Django DeleteView,并创建了一个 url 和 View 。是否可以跳过加载_confirm_delete模板的过程并立即发布删除。 最佳答案 DeleteView 响应
这个问题在这里已经有了答案: Example of Django Class-Based DeleteView (4 个答案) 关闭 6 年前。 我正在尝试从特定客户端删除报告,因此目前在我的 ur
我有一个 DeleteView。我想在其中访问相关的对象 ID。当用户发出 POST 请求时。 查看: class DeletePacketView(LoginRequiredMixin, Delet
我有一个包含 2 个条件“帖子”和“用户”的删除 View 。 用户需求由 self.object.user = self.request.user 满足,帖子需求由 slug = self.kwar
我有几个模型,Content 和 Hostname。 Hostname 有一个关联模型的 content_id: class Content(models.Model): name = mod
我有这些模型。每个回复可以没有、一个或多个帖子。帖子是特定于用户的。如何创建删除 View ,以便用户只能删除自己的帖子,而不能删除其他人回复的帖子。我尝试了很多次,但我的观点是删除其他用户的帖子。意
因此,我尝试为我的 Lecture 模型设置一个 DeleteView。我的 Course 模型中的每门类(class)都有自己的 slug 页面。该页面上会出现类(class)讲座。 问题是我尝试为
我需要用JS确认,而不是django的HTML确认。 Here我找到了问题的解决方案,但没有代码示例。请帮助并给我一些代码。这是我的观点: class EmployeeDelete(DeleteVie
有没有人知道或可以请任何人制作一个 Django 基于类的通用 DeleteView 的简单示例?我想继承 DeleteView 并确保当前登录的用户在删除之前拥有该对象的所有权。任何帮助将不胜感激。
我正在尝试实现 DeleteView 并防止在用户不是所有者的情况下删除模型。我敢肯定这是一项非常微不足道的任务,但我无法找到明确的答案。到目前为止,我可以看到我的 View ,但目前每个人都可以删除
在用户删除一个 PieceInstance 后,我想将他重定向到 PieceInstance 所属的 Piece。我使用默认的 DeleteView 并希望将 Piece id(通过 ForeignK
我希望在单击删除按钮时创建一个确认弹出窗口。它目前正在运行并立即删除。这是我的一些代码: View .py: class patientDelete(LoginRequiredMixin, Delet
我是 django 的新手,我遇到了 ajax 的问题。我有下面的代码。 我有一个 django delte View 。我想将它与 ajax 一起使用。现在 View 正在运行,但 CSRF tok
我是一名优秀的程序员,十分优秀!