python-3.x - Django - 消息功能在基于类的视图中不起作用
问题描述
无法在基于类的视图中显示消息。在另一个应用程序的views.py 中,它在我使用基于函数的视图时运行良好。
视图.py:
class PostDeleteView(LoginRequiredMixin, UserPassesTestMixin, SuccessMessageMixin, DeleteView):
model = Post
success_url = '/user-profile/'
success_message = "Your post has been deleted sucessfully!"
def test_func(self):
post = self.get_object()
if self.request.user == post.author:
return True
return False
网址.py:
path('user-profile/', user_views.user_profile, name='user_profile'),
html:
{% if messages %}
{% for message in messages %}
<div class="alert alert-{{ message.tags }}">
{{ message }}
</div>
{% endfor %}
{% endif %}
解决方案
DeleteView
不子类FormView
所以SuccessMessageMixin
不会做任何事情。您必须自己添加消息,覆盖该delete
方法似乎是个好地方
def delete(self, request, *args, **kwargs):
response = super().delete(request, *args, **kwargs)
messages.success(self.request, 'Your post has been deleted sucessfully!')
return response
推荐阅读
- json - 无法在 Vue 中的 HighCharts 回调中附加到 JS 对象
- ansible - 错误!意外异常,这可能是一个错误:“AnsibleLoader”对象没有属性“get_single_data”
- containers - Octave containers.map 在成员函数中不起作用
- javascript - Web 窗体 Azure 活动目录:加载资源失败:服务器响应状态为 401
- java - JavaFX在运行时更改矩形的颜色
- sql - 当另一个连接已经使用同一个表时,Oracle 可以返回超时吗?
- oracle - ORA-00918 在视图中具有唯一的列名
- android - Flutter:Raw Material Button 和 Material Button 的区别
- javascript - MUI Select - 更改选择大小
- python - 如何使用 Naked 在 Python 中正确捕获 Node js 脚本的错误?