当我提交表单时,我想传递消息为"表单已成功提交"到同一页" successs.html"。怎么可能?
class SuccessView(FormView):
template_name = 'success.html'
form_class = QuestForm
success_url='success'
def form_valid(self, form):
ob9=Logs.objects.all()
for i in ob9:
logids=i.id
str(logids)
q1= form.cleaned_data['ques']
obj1=Quest.objects.create(logid=logids,status=0,question=q1)
return super(SuccessView,self).form_valid(form)
答案 0 :(得分:0)
如果您使用Django的messages framework,就像在呼叫处理过程中的任何时候添加消息一样简单(这会将消息添加到当前的request
对象)并将其添加到响应中:
from django.contrib import messages
messages.success("Form successfully submitted")
您可以在致电return super().form_valid(form)
之前执行此操作。
在模板中,您需要添加代码以显示消息,当然,文档中的示例将向您显示如何执行此操作。
答案 1 :(得分:0)
django message Framework提供了不同的方法:
from django.contrib import messages
messages.add_message(request, messages.INFO, 'Your message', extra_tags='more_tags')
# extra_tags is optional
或
messages.success(request,"Your message")
要在模板中检索它,请使用类似
的内容{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}