详解Django的 get_success_message() 函数:获取表单验证成功后的消息

Django的get_success_message()函数介绍

get_success_message()方法是DJango框架中的一个函数,返回一个字符串信息,用于响应成功操作的消息提示。正常来讲成功后我们需要用messages框架返回成功信息,但在某些情况下比如ajax提交等无法使用messages框架,这时候就可以用get_success_message()函数返回成功提示信息。下面详细介绍这个函数的作用和使用方法。

作用

get_success_message()函数的作用是返回一个成功提示信息的字符串用于响应用户操作。

使用方法

  1. 继承SuccessMessageMixin类,重写success_message属性,为后续使用打下基础,示例代码如下:
from django.contrib.messages.views import SuccessMessageMixin
from django.views.generic import CreateView

class ArticleCreateView(SuccessMessageMixin, CreateView):
    model = Article
    success_url = reverse_lazy('article:index')
    fields = ('article_title', 'article_content')
    success_message = "%(article_title)s was created successfully"  # 要显示的成功信息字段

通过SuccessMessageMixin继承我们实现了success_message属性的重定义,定义成功信息显示的内容。

重写后的get_success_message()函数就会根据指定的success_message属性生成成功提示信息,从而达到我们的效果。

  1. 重写get_success_message()函数手动指定成功提示信息,示例代码如下:
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.views import SuccessMessageMixin
from django.urls import reverse_lazy
from django.views.generic.edit import CreateView

class UserCreateView(SuccessMessageMixin, CreateView):
    form_class = UserCreationForm
    template_name = 'users/signup.html'
    success_url = reverse_lazy('books')

    def get_success_message(self, cleaned_data):
        return 'User %(username)s was created successfully' % dict(
            cleaned_data,
            password='********', #这里将password保存成了*号,保证安全性
        )

我们在这个例子中的作用是创建用户。使用UserCreationForm创建用户的同时,重写了get_success_message函数,手动指定返回的信息。

注意事项

get_success_message()函数其实很简单,只要继承SuccessMessageMixin就可以使用了。

需要注意几点:
- 需要SuccessMessageMixin继承
- success_message或者get_success_message 两者必须实现至少一个
- success_message定义消息变量,get_success_message根据参数返回消息。

以上两个例子均已成功地实现了get_success_message()函数的使用,可以解决一些messages框架使用不便的问题。

希望本攻略能对需要使用get_success_message()函数的DJango开发者有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Django的 get_success_message() 函数:获取表单验证成功后的消息 - Python技术站

(0)
上一篇 2023年3月23日
下一篇 2023年3月23日

相关文章

  • 详解Django的 get_context_data() 函数:获取模板上下文数据

    Django的get_context_data()函数是一个用于返回视图的上下文数据的方法。可以通过这个方法将需要展示的数据传递到模板中,从而方便渲染模板。下面提供一份完整攻略。 1. get_context_data() 函数的作用 get_context_data() 函数的作用是在视图中从数据库或其它数据源中取得一些需要展示的数据,然后将这些数据回传给…

    Django函数大全 2023年3月23日
    00
  • 详解Django的 get_object() 函数:获取视图所处理的对象

    Django get_object() 函数详解 在 Django 中,get_object_or_404() 函数用于获取指定模型对象,如果找不到则返回 HTTP 404 Not Found 错误。它与 get() 类似,但不同之处在于如果找不到对象,它会引发 HTTP 404 错误而不是返回 None 值。 1. 基本用法 Django 中,内置了 ge…

    Django函数大全 2023年3月23日
    00
  • 详解Django的 form_invalid_message() 函数:返回表单验证失败后的消息

    form_invalid_message() 函数是 Django 中 FormMixin 类的一个方法,其作用是在表单提交验证失败(即表单内容不合法)时,指定一个自定义错误消息的显示。 使用方法: 重写form_invalid方法,调用form_invalid_message()函数并指定自定义的错误消息。 在模板中,使用 {{ form.non_fiel…

    Django函数大全 2023年3月23日
    00
  • 详解Django的 paginate_queryset() 函数:对查询结果进行分页

    下面是Django中paginate_queryset()函数的作用与使用方法的详细攻略。 作用 paginate_queryset()函数是Django框架中的一个分页函数,用于将一个QuerySet对象分页,生成一个Page对象。该函数返回一个元组,其中包含分页后的Page对象和布尔值,表示是否有下一页。我们可以通过该函数灵活地配置分页器,让用户方便地浏…

    Django函数大全 2023年3月23日
    00
  • 详解Django的 page_range() 函数:获取页码范围

    首先,page_range()函数是Django自带分页器Paginator中的一个方法。它的主要作用是返回当前页左右两侧的页码范围。 使用方法如下: from django.core.paginator import Paginator items = [‘item1’, ‘item2’, ‘item3’, ‘item4’, ‘item5’, ‘item6…

    Django函数大全 2023年3月23日
    00
  • 详解Django的 form_invalidated() 函数:表单数据验证失败后的处理逻辑

    Django中form_invalid()函数的作用与使用方法攻略 1. form_invalid()函数是什么? 在Django中,form_invalid()函数是FormView视图函数处理表单中验证失败的情况,主要作用是将验证失败后的表单数据重新发送给用户以供修正,并且在重新发送表单前做一些自定义的操作。 当用户提交表单失败(验证失败)时,表单将自动…

    Django函数大全 2023年3月23日
    00
  • 详解Django的 select_related() 函数:对关联对象进行选择

    Django select_related()函数 select_related()函数是Django中用于 优化查询性能 的一个重要函数。 使用select_related()可以使查询数据时,Django在所有涉及到联合查询的外键开始处进行一次性的联合查询,从而减少了多次访问数据库的必要性。 当一个查询涉及多个表时,使用select_related()可…

    Django函数大全 2023年3月23日
    00
  • 详解Django的 paginate_orphans() 函数:指定一页最少显示的对象数量

    Django的paginate_orphans()函数详解 paginate_orphans()函数是Django框架中pagination(分页)模块的一部分。其作用是用来确定在一个分页显示中的一页中最少要显示的记录数量。当一页中只有“孤儿”记录时,可以将它们作为上一页的最后一页来显示,以免摆在一页中的孤儿记录过少而显得过于孤立。 使用方法: class …

    Django函数大全 2023年3月23日
    00
合作推广
合作推广
分享本页
返回顶部