Как я могу передать сообщение на страницу при отправке формы? - PullRequest
0 голосов
/ 06 мая 2018

Когда я отправляю форму, я хочу передать сообщение как «форма успешно отправлена» на ту же страницу «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)

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Платформа django message предлагает различные способы сделать это:

 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 %}
0 голосов
/ 06 мая 2018

Если вы используете инфраструктуру сообщений Django , это так же просто, как добавить сообщение в любой момент во время обработки вызова (это добавляет сообщение к текущему request объекту), и оно будет добавлено к ответ:

from django.contrib import messages
messages.success("Form successfully submitted")

Вы можете сделать это непосредственно перед звонком на return super().form_valid(form).

В вашем шаблоне вам нужно добавить код для отображения сообщений, конечно, пример в документации покажет вам, как это сделать.

...