一、讲一下需求
前端实现一个下拉菜单,通过后端从数据库读取数据作为菜单选项,点击实现跳转
这是前端js部分 ,data部分为获取的Json数据,这是没问题的
<script>
layui.use('dropdown', function(){
var dropdown = layui.dropdown
dropdown.render({
elem: '#demo1' //可绑定在任意元素中,此处以上述按钮为例
,data: {{dictlist|safe}}
,id: 'demo1'
//菜单被点击的事件
,click: function(obj){
if(obj.id == 1){
location.href = "{% url 'tableoperation' %}";
}else if(obj.id == 2){
location.href = "{% url 'tablegenerate' %}";
};
}
});
});
</script>
大部分时间浪费在哪里了呢?
1.数据库中的数据类型转换
2.数据库中的数据经过后端处理成json格式,这个问题上解决了很久
这是最后正确的处理方式
def index(request):
list = formtable.objects.all()
datalist = []
for li in list:
dic = {}
dic["id"] = (li.id)
dic["title"] = (li.tablename)
datalist.append(dic)
return render(request,"temselect.html",{'dictlist':json.dumps(datalist,ensure_ascii=False)})
这是我们最后想要得到的数据格式:
dic["title"] = (li.tablename)
当title的引号为单引号时,有这个或者那个的问题,或许是没有更新运行
其次是格式转换
from __future__ import unicode_literals#引入
#参数设置
return render(request,"temselect.html",{'dictlist':json.dumps(datalist,ensure_ascii=False)})
就得到了正确的数据格式
而不是
OK!
参考文章