如何通过Django中的“get\u success\u message”函数传递字典?

2024-05-26 16:27:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过“获取成功消息”功能传递字典,但我就是做不到。 我需要更多的字符串在我的消息(标题,颜色…) 我做错什么了?你知道吗

我的观点:

class PeliculasEdit(SuccessMessageMixin, UpdateView):
    model = Pelicula
    form_class = PeliculaForm
    template_name = "videoclub/peliculas_edit.html"
    success_url = reverse_lazy('peliculas_manage')
    message_data = {
        'color':'success',
        'titulo':'Película editada',
        'mensaje':'La película se ha editado correctamente',
    }

    def get_success_message(self, cleaned_data):
        return self.message_data

我使用的模板消息:

{% if messages %}

    {% for message in messages %}
    <div class="toast show" role="alert" aria-live="assertive" aria-atomic="true">
        <div class="toast-header">
        </div>
        <div class="toast-body">
            <p>{{message.color}}</p>
        </div>
      </div>
    {% endfor %}

{% endif %}

我想我必须这么做{{消息.颜色}}例如。但这是错误的。 提前谢谢!你知道吗


Tags: self功能div消息messagedata颜色class
1条回答
网友
1楼 · 发布于 2024-05-26 16:27:17

不能使用SuccessMessageMixinget_success_message方法以这种方式传递字典。你知道吗

Django docs这样说get_success_message函数:

The cleaned data from the form is available for string interpolation using the %(field_name)s syntax. For ModelForms, if you need access to fields from the saved object override the get_success_message() method.

get_success_message函数的返回值是message属性,它是发送到消息框架的字符串。SuccessMessageMixin是创建成功消息的快捷方式,例如:

messages.add_message(request, messages.SUCCESS, 'Profile details updated.')

听起来你想要的是如何添加extra tags to a message

messages.add_message(request, messages.SUCCESS, 'My success message string', extra_tags='color_success')

这是How can I add additional data to Django messages?的副本

相关问题 更多 >

    热门问题