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

yizhihongxing

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_meta_robots() 函数:获取页面的机器人指令

    Django中get_meta_robots()函数的作用是从给定的Meta信息中获取网页的robots指令,返回值为字符串类型。它通常用于管理网站的搜索引擎优化(SEO),以控制搜索引擎蜘蛛对网站中的内容进行收录。 Django的get_meta_robots()函数有如下几个参数: html:请求的HTML页面内容。 default:默认的robots指…

    Django函数大全 2023年3月23日
    00
  • 详解Django的 page_kwarg() 函数:指定分页查询参数的名称

    page_kwarg()是Django中一个用于分页的辅助函数。它的作用是获取Web请求中提供的Page参数,并将其加入到作为分页查询参数的字典中。我们可以通过这个函数来设置分页参数的默认值。 该函数的具体参数如下: page_kwarg(page_query_param=’page’) page_query_param:分页参数的名称,默认为“page”。…

    Django函数大全 2023年3月23日
    00
  • 详解Django的 exclude() 函数:排除查询结果

    下面是关于Django的exclude()函数的详细讲解: 1. 介绍 exclude()函数是Django查询API中的一个重要函数,其作用是从查询结果中排除满足指定条件的对象。该函数通常被用于筛选数据,并寻找不符合指定过滤条件、不需要的数据,从而提高查询效率。 exclude()函数的使用方式和filter()函数非常相似,二者都是调用模型的Manage…

    Django函数大全 2023年3月23日
    00
  • 详解Django的 save() 函数:保存对象

    当我们在Django中创建一个新的实例时,例如一个新的文章实例,我们需要在数据库中保存这个实例。Django中提供了一个save()方法来执行这个操作。save()方法被定义在任何Django模型类中,其中包括Model、Form等。 save()的作用是将一个模型实例保存到数据库中。如果模型是新的,它会被插入到数据库中。如果这个模型对象已经存在于数据库中(…

    Django函数大全 2023年3月23日
    00
  • 详解Django的 only() 函数:只选择指定的字段

    Django的only()函数详解 1. only()函数的作用 在Django中进行queryset操作时,返回的查询结果往往包含了数据表中的所有字段,但有时候我们只需要其中的几个字段,同时这样也能提高查询数据的效率。这时候,就可以使用Django中的only()函数来实现查询结果只包含指定的字段。 2. only()函数的使用方法 only()函数的语法…

    Django函数大全 2023年3月23日
    00
  • 详解Django的 reverse() 函数:根据视图名称反向生成 URL

    下面是关于Django中reverse()函数的详细讲解: 什么是reverse()函数? reverse()函数是Django框架中的一个URL反向解析函数。它可以根据给定的URL名称和参数,生成相应的URL。这在重构URL时特别有用,因为它允许我们在应用程序的代码中使用具有可读性的名称来代替URL,从而简化应用程序的代码和URL的管理。 reverse(…

    Django函数大全 2023年3月23日
    00
  • 详解Django的 form_invalid() 函数:当表单验证失败时执行的操作

    下面就 Dajngo 的 form_invalid() 函数进行详细讲解。 form_invalid() 函数作用 form_invalid() 是 Django 中 FormMixin 类提供的一个方法,用于提交表单时数据不合法情况下的处理。当表单提交后,如果数据不合法,在 form_invalid() 中我们可以对数据进行重新处理或提示用户输入错误。通常…

    Django函数大全 2023年3月23日
    00
  • 详解Django的 filter() 函数:过滤查询集合

    当我们需要从数据库中获取特定数据时,我们可以使用 Django ORM 的 filter() 函数来筛选满足需求的数据,其作用相当于 SQL 中 WHERE 子句。 filter() 函数的使用方法 filter() 函数的一般形式是:Model.objects.filter(过滤条件)。 过滤条件可以是以下内容: 精确等于:field=value 大于、小…

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