我们如何在 Django 中删除评论之前生成确认提示?

Posted

技术标签:

【中文标题】我们如何在 Django 中删除评论之前生成确认提示?【英文标题】:How can we generate a conformation prompt before deleting a comment in Django? 【发布时间】:2019-10-12 14:11:48 【问题描述】:

我正在尝试链接 java 脚本和 Django 视图,我有一个 cmets 删除视图,它的功能很好,但是在删除它们之前我需要使用 javascript 进行一些确认。

我不了解 Mapping Javascript 和 Django 视图。谁能帮我写代码?

@login_required
def delete_my_comment(request, pk):
    comment = get_object_or_404(Comment, pk=pk)
    if comment.user == request.user.username:
        comment.delete()
        messages.success(request, f' Your comment is deleted')
    return redirect('post-detail', pk=comment.post.id)

 <a class="btn btn-danger btn-sm mt-1 mb-1" href="% url 'post-delete' object.id %">Delete Post</a>

可以帮助我根据上述代码为删除构造编写 javascript 逻辑吗? 谢谢大家

【问题讨论】:

【参考方案1】:

通用视图的答案很好,但如果您需要对 UI 进行更多控制,您可以使用 JavaScript 来实现。只需在删除按钮上添加事件侦听器。如果用户单击此按钮 - 通过将其显示属性更改为阻止将显示一些隐藏的 html 表单。如果您使用的是引导程序,那就更简单了。阅读Bootstrap Modals

【讨论】:

感谢您的建议,您能否提供任何示例供您参考如何使用它,并且所有示例看起来都像html,它实际上对我有什么帮助 你可以在这里看到:Show confirmation message before deleting。忽略用 Java 编写的那部分,看看它是如何在 HTML 中管理的 ;)【参考方案2】:

为什么不尝试 django 通用视图,使用基于类的视图,例如

类 DeleteComment(LoginRequiredMixin, DeleteView):

model =  Comment
template_name = "delete_comment.html"
success_url = "post"

创建一个带有确认语句的delete_comment.html以及一个提交按钮和取消锚点,这应该没问题

【讨论】:

感谢您的建议,我知道您提出的解决方案的方式,但我想用 javascipt 来做,您知道我们如何用 javascript 来做吗?

以上是关于我们如何在 Django 中删除评论之前生成确认提示?的主要内容,如果未能解决你的问题,请参考以下文章

Django 删除确认

如何在 Django 中使用引导模式对表数据进行删除确认?

保存确认页面在哪里可以挂接到 Django 管理员? (类似于删除确认)

如何检查 Django 中将级联删除的对象?

我如何使用 Bootstrap4 模态在 Django 中制作功能正常的删除确认弹出窗口

如何在没有确认的情况下使用 django migrate