首页 > 解决方案 > save() 函数中的 Django 消息传递框架

问题描述

我正在检查模型实例是否已经存在以及是否要发送一条消息说“名称已经存在”。由于 def save() 中没有请求,有没有其他方法可以通过 Django 消息框架或其他方式发送消息?

def save(self, *args, **kwargs):
    self.name = self.name
    if Name.names.name_exists(self.name):
        message = "You already have this name!" # want to send this message
        print("not created")
    else:
        print("created")
        super(Name, self).save(*args, **kwargs)

标签: djangodjango-modelsdjango-rest-frameworkdjango-templatesdjango-messages

解决方案


是的,您可以使用 django 消息框架messages.warning(request, 'Object already exists.')代替该print语句,并且根据您的逻辑而不是警告消息,您可以发送成功或信息消息。在您的模板中,您可以使用;

{% if messages %}
<ul class="messages">
    {% for message in messages %}
    <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
    {% endfor %}
</ul>
{% endif %}

但是此选项可用于您的视图层而不是模型层。不要忘记检查文档


推荐阅读