我想在保存一行时显示一条成功消息,使用Django的消息传递框架和基于类的视图,代码如下所示,但不显示消息。
任何帮助都将不胜感激
#views.py
from django.views.generic import ListView, CreateView, UpdateView, TemplateView
from django.contrib.messages.views import SuccessMessageMixin
class CreateEmployee(SuccessMessageMixin, CreateView):
model = Employee
template_name = 'employees/create.html'
form_class = frmCreate
def get_success_url(self):
return reverse('Employees:Create')
def get_context_data(self, **kwargs):
contexto = super(CreateEmployee, self).get_context_data(**kwargs)
contexto['action'] = reverse('Employees:Create')
return contexto
success_message = 'Employee successful created'
#template
#create.html
<form action="{{ action }}" method="POST" role="form">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Save" class="btn btn-success">
<form>
{% if messages %}
<div class="col-lg-3 color03">
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
</div>
{% endif %}
6条答案
按热度按时间bvk5enib1#
只需像这样使用
self.request
:lymgl2op2#
使用Django 2.2,根据文档here,这里是我在基于类的视图上的工作:
settings.py
“默认存储后端依赖于会话。这就是为什么必须启用SessionMiddleware并且在MIDDLEWARE中显示在MessageMiddleware之前。”
views.py
urls.py
在模板中:(使用引导类)
0x6upsns3#
gtlvzcf84#
您需要在www.example.com文件内的CreateEmployee类中添加以下内容:-views.py file you need to add this :-
在base. html类中使用bootstrap类。
bq3bfh9z5#
你必须在www.example.com中设置消息存储settings.py
问候
rdlzhqv96#
您也可以在“settings.py”中定义MESSAGE_TAGS以备将来使用。