python - 如何使用 Django 的内置框架为评论添加确认消息?

标签 python django django-templates django-template-filters

我想创建一个简单的消息“您的评论已发布!”使用 Django 的 messages 框架。我正在使用 Django 的 comments 框架并将其设置为在发表评论后刷新页面

<div><input type="hidden" name="next" value="{{ request.get_full_path }}" /></div>

在我创建的 form.html 中覆盖 comments 的默认值。我还必须在我的 settings.py 中为 TEMPLATE_CONTEXT_PROCESSORS 包含 django.core.context_processors.request

无论如何,messages documentation说要在 views.py 中添加消息。这是否意味着我需要覆盖 commentsviews.py 或者是否有更简单的方法来执行此操作?为comments修改源码我有点不爽。如果必须的话,我什至不确定在哪里添加行

 messages.add_message( request, messages.SUCCESS, 'You comment has been posted!' )

django.contrib.comments.views.comments 中的 def post_comment() 下。

最佳答案

您可以 connect a custom receivercomment_was_posted signal .它可能看起来像这样:

from django.contrib.comments.signals import comment_was_posted

def thank_user(sender, comment=None, request=None, **kwargs):
    messages.add_message( request, messages.SUCCESS, 'You comment has been posted!' )
comment_was_posted.connect(thank_user)

此类片段的一个好地方是项目特定的 models.py,因为它们都是在模型定义时导入的。

关于python - 如何使用 Django 的内置框架为评论添加确认消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9898631/

相关文章:

Django 应用程序似乎使用旧的 QuerySet 结果来处理基于 date.today() 过滤的新请求

python - django-eav 和南方

python - Django string_if_invalid 和默认值

python - 为什么我需要指定此列表的大小,否则它会给出列表索引超出范围错误

python - pip 和 virtualenv 在错误的地方安装了部分 django

python - 路径功能无法识别问号

django - Django模板中的IsInstance吗?

python - Django:显示 "featured"项目?

python - 为某些列 pandas 创建新列

python - 递归包导入失败的规则