django - 成功消息在基于 Django 类的 Createview 中不起作用
问题描述
我在下面有我的视图我尝试了所有方法,但成功消息在基于 Django 类的 Createview 中不起作用。我哪里错了?
编辑我添加了 SuccessMessageMixin 但仍然无法正常工作。
class TaskCraeteView(SuccessMessageMixin,LoginRequiredMixin,CreateView):
model=Task
success_message = "Task Craeted successfully!"
success_url = reverse_lazy('create-task')
login_url = 'login'
template_name = 'create-task'
form_class = TaskCreateForm
get_success_url ="/"
def form_valid(self,form):
print(form.cleaned_data)
form.instance.task_assign_by = self.request.user
server = form.save(False)
server.save()
# form.save()
task= Task.objects.latest('id')
print(type(task))
for users in form.cleaned_data['task_assign_to']:
TaskComplete.objects.create(completed_by=users, task_id= task)
for p in form.cleaned_data['task_perticulars']:
task.task_perticulars.add(p)
for t in form.cleaned_data['task_subtask_name']:
task.task_subtask_name.add(t)
return HttpResponseRedirect("add")
我的模板:-
{% if messages %}
{% for message in messages %}
<div class="alert alert-{{message.tags}}">
<a href="#" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</a>
{{ message }}
</div>
{%endif%}
{% endfor %}
{% endif %}
使用 HttpResponseRedirect 时如何发送成功消息?
解决方案
为了使用该success_message
属性,您的视图还应该扩展SuccessMessageMixin
. 除此之外,您还需要设置您的success_url
. 您可以从官方文档中找到更多详细信息。您需要更新您的视图,例如:
class TaskCraeteView(SuccessMessageMixin, LoginRequiredMixin, CreateView):
model=Task
success_url = '/success/'
success_message = "Task Craeted successfully!"
login_url = 'login'
template_name = 'create-task'
form_class = TaskCreateForm
def form_valid(self,form):
print(form.cleaned_data)
form.instance.task_assign_by = self.request.user
server = form.save(False)
server.save()
# form.save()
task= Task.objects.latest('id')
print(type(task))
for users in form.cleaned_data['task_assign_to']:
TaskComplete.objects.create(completed_by=users, task_id= task)
for p in form.cleaned_data['task_perticulars']:
task.task_perticulars.add(p)
for t in form.cleaned_data['task_subtask_name']:
task.task_subtask_name.add(t)
return HttpResponseRedirect("add")
推荐阅读
- logging - 如何记录 Virtualbox VRDP 登录?
- java - 使用jpa hibernate更新spring boot中的数据
- flutter - 如何解决,无法找到 Android SDK
- javascript - 使用正则表达式 javascript 从字符串中提取全名
- php - How to validate if data already exist in php
- mysql - 我应该如何将数据库表复制到可以在 Spring Boot Rest api 中使用的等效 Java bean 类中?
- javascript - set scroll bar to specific div
- python - 如何使用Python删除Excel文件中具有特定值的列中的行
- css - 在移动视图中为 Woocommerce 类别存档页面创建两列
- html - 如何使用 BeautifulSoup 提取表中的所有元素?