自己的疑惑
不知道各位大神是如何实现直接引用以下的toastr
{% for message in messages %}
toastr.{{ message.tags }}("{{ message }}");
{% endfor %}
我已经引入的toastr的jquery,css,js、顺序也是没有问题的,上网也查过许多资料,但还是显示没有定义
Uncaught ReferenceError: toastr is not defined at (索引):351:13
希望有大神留下评论指点迷津
解决办法
我自己使用的笨办法,当后端传递message时,重写一次toast()以实现效果
准备工作,前端引入的文件
<link href="{% static 'assets/plugins/jquery-toast/jquery.toast.min.css' %}" rel="stylesheet" type="text/css">
<script src="{% static 'assets/plugins/jquery-toast/jquery.toast.min.js' %}"></script>
上面是我自己本机的路径,自己编写的toast的css样式,如需测试请到官网下载官方所给的toast样式和jquery 官网地址:Toastr by CodeSeven
后端
from django.contrib import messages
form = SetRaceModelForm(instance=current_race,data=request.POST)
if form.is_valid():
form.save()
messages.success(request,'修改成功!')
return render(request,'planner_update_race.html',{'form':form})
这里后端写的是修改数据,成功保存到数据库后提示前台的信息,message传递信息的详细用法可到python 官网查看
前端
<script type="text/javascript">
$.toast().reset('all');
$("body").removeAttr('class');
{% for msg in messages %}
setTimeout(function() {
$.toast({
heading: '{{ msg.tags }}',
text: '{{ msg.message }}',
position: 'top-right',
loaderBg: '#FFBD4A',
icon: '{{ msg.tags }}',
hideAfter: 5000
});
}, 5000 * {{ forloop.counter0 }});
{% endfor %}
</script>
这里写的关于自己的toastr样式,后台传进来的内容是 【修改成功】
实现的效果如下:
以上就是自己重写toastr的本方法,如果有更好的办法,希望您能在评论区留言,上网找了许久也没有找到python专门适合toastr的包,Flask-Toastr 0.5.2,不知道此包能否适合Django的使用,还未尝试