【问题标题】:Django Forms UpdateView: How to alert user after successful update?Django Forms UpdateView:成功更新后如何提醒用户?
【发布时间】:2020-04-15 18:24:31
【问题描述】:

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

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

有没有一种简单的方法可以在不重写大量类方法的情况下做到这一点?

谢谢。

【问题讨论】:

  • 请添加前后端代码。只有这样我才能建议你。

标签: python django django-forms django-views django-crispy-forms


【解决方案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 %}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-26
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多