get_success_message()方法是DJango框架中的一个函数,返回一个字符串信息,用于响应成功操作的消息提示。正常来讲成功后我们需要用messages框架返回成功信息,但在某些情况下比如ajax提交等无法使用messages框架,这时候就可以用get_success_message()函数返回成功提示信息。下面详细介绍这个函数的作用和使用方法。
get_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属性生成成功提示信息,从而达到我们的效果。
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开发者有所帮助。
本文链接:http://task.lmcjl.com/news/16261.html