Javascript 成功删除、添加或编辑项目的django消息
我已经开始使用django消息来创建项目。 它非常适合创建和添加新项目 但是。。我希望每个动作都有函数- 删除、创建、编辑(我有不同的按钮) 我只有post功能。。当我试图创建一条消息说该项目已成功删除时,我真的很困惑。。我怎么知道删除是提交的而不是发布的?因为每件事都要经过post功能 PostEdit和Delete没有消息所需的“请求” 所以现在我只有messages.succuess在每次创建服务器时运行。 我想有一个不同的消息删除,编辑,创建和相同的错误 有人有线索吗 index.html-Javascript 成功删除、添加或编辑项目的django消息,javascript,python,html,django,web,Javascript,Python,Html,Django,Web,我已经开始使用django消息来创建项目。 它非常适合创建和添加新项目 但是。。我希望每个动作都有函数- 删除、创建、编辑(我有不同的按钮) 我只有post功能。。当我试图创建一条消息说该项目已成功删除时,我真的很困惑。。我怎么知道删除是提交的而不是发布的?因为每件事都要经过post功能 PostEdit和Delete没有消息所需的“请求” 所以现在我只有messages.succuess在每次创建服务器时运行。 我想有一个不同的消息删除,编辑,创建和相同的错误 有人有线索吗 index.htm
{% if messages %}
<ul class="messages">
{% for message in messages %}
<div class="alert alert-success alert-dismissible fade show" role="alert">
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
{% endfor %}
</ul>
{% endif %}
您不能在类定义中调用消息。success
。调用必须以post
或form\u valid
等方法进行
消息框架有一个successessagexin
,您可能会发现它很有用。将mixin添加到每个视图中,并设置success\u消息
:
class PostDelete(SuccessMessageMixin, DeleteView):
model = serverlist
success_url = reverse_lazy('serverlist')
success_message = "Object deleted"
有关更多信息,请参阅上的文档
您不能在类定义中调用消息。success
。调用必须以post
或form\u valid
等方法进行
消息框架有一个successessagexin
,您可能会发现它很有用。将mixin添加到每个视图中,并设置success\u消息
:
class PostDelete(SuccessMessageMixin, DeleteView):
model = serverlist
success_url = reverse_lazy('serverlist')
success_message = "Object deleted"
有关更多信息,请参阅上的文档。覆盖deleteview中的delete方法以更改消息类型:
class PostDelete(SuccessMessageMixin, DeleteView):
model = serverlist
success_url = reverse_lazy('serverlist')
success_message = "Object deleted"
def delete(self, request, *args, **kwargs):
messages.warning(self.request, self.success_message)
return super(PostDelete, self).delete(request, *args, **kwargs)
您可以通过覆盖UpdateView的update方法来执行相同的操作。覆盖deleteview中的delete方法以更改消息类型:
class PostDelete(SuccessMessageMixin, DeleteView):
model = serverlist
success_url = reverse_lazy('serverlist')
success_message = "Object deleted"
def delete(self, request, *args, **kwargs):
messages.warning(self.request, self.success_message)
return super(PostDelete, self).delete(request, *args, **kwargs)
您也可以通过覆盖UpdateView的update方法来实现这一点。效果很好!我现在唯一担心的是如何在消息中输入实际的服务器名称。。。在post函数中,我可以使用“{0}已成功添加!”。格式(post.ServerName)),但在这里我不能使用post.ServerName。。另外,您知道如何将服务器名加粗吗?由于它不是html,而且我没有,在django中?为了澄清:对于其他基于类的视图,
successessagexin
显示success\u消息,而无需覆盖delete
方法。但是,对于DeleteView
s,情况并非如此,需要重写它--请参阅.Works great!我现在唯一担心的是如何在消息中输入实际的服务器名称。。。在post函数中,我可以使用“{0}已成功添加!”。格式(post.ServerName)),但在这里我不能使用post.ServerName。。另外,您知道如何将服务器名加粗吗?由于它不是html,而且我没有,在django中?为了澄清:对于其他基于类的视图,successessagexin
显示success\u消息,而无需覆盖delete
方法。但是,对于DeleteView
s,情况并非如此,需要重写它--请参阅。您知道如何像在文章中那样在其中添加实际的服务器名吗?post.servername在这里不起作用,因为类不知道它是什么。我链接的文档演示了如何做到这一点。如果值在表单数据中,您可以使用字符串插值,或者您可以覆盖get\u success\u message
。您知道我如何像在文章中那样在其中添加实际的服务器名吗?post.servername在这里不起作用,因为类不知道它是什么。我链接的文档演示了如何做到这一点。如果值在表单数据中,则可以使用字符串插值,或者可以覆盖get\u success\u message
。