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

Django Forms UpdateView: How to alert user after successful update?

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

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

有没有不用重写很多 class 方法就可以做到这一点的简单方法?

谢谢。

您需要使用 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 %}