[英]Success-message not working in Django Class based 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")
繼承類TaskCraeteView的SuccessMessageMixin,如下所示:
class TaskCraeteView(LoginRequiredMixin, SuccessMessageMixin, CreateView):
....
如果仍然無法解決問題,請嘗試更改參數的順序,即LoginRequiredMixin和SuccessMessageMixin之間的交換。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.