Django Forms UpdateView:如何在成功更新后提醒用户?

问题描述 投票:0回答:1

我正在使用django UpdateView和cripsy表单来处理表单。在模型成功更新后(即在验证并保存之后),我想在页面上显示警报或弹出窗口。

如果我使用onSubmit参数显示警报,它将仅在按下提交按钮后显示,但是我只希望在更新了有效模型后才显示。

是否有一种简便的方法可以在不重写很多类方法的情况下进行此操作?

谢谢。

python django django-forms django-views django-crispy-forms
1个回答
1
投票

您需要使用messages framework。这是一个例子:

# in views.py:

from myapp.forms import ContactForm
from django.views.generic.edit import FormView

class ContactView(FormView):
    template_name = 'contact.html'
    form_class = ContactForm
    success_url = '/thanks/'

    def form_valid(self, form):
        # This method is called when valid form data has been POSTed.
        # It should return an HttpResponse.
        form.send_email()
        success_message = 'Success! We just sent you an email to confirm'
        messages.success(request, success_message)
        return super().form_valid(form)

然后,在您的模板中(同样从the docs开始:]]

{% if messages %}
<ul class="messages">
    {% for message in messages %}
    <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
     {% endfor %}
</ul>
{% endif %}
© www.soinside.com 2019 - 2024. All rights reserved.