Django模板未保留OrderedDi

2024-05-16 22:22:38 发布

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

函数返回有序列表

    my_olist = OrderedDict() 
    my_olist['bananas'] = 3
    my_olist['apples'] = 1
    ..
    return my_olist

在视图.py我确认订单维持了

^{pr2}$

但是,在HTML模板结果页中,不再维护顺序

{% for key, value in ordered_list.items %} 
<b>{{key}}:</b> {{value}} <br>
 {% endfor %}

我已经看到了一个为orderedDict工作的解决方案,但是他们没有使用HttpResponseRedirect。在


Tags: key函数py订单视图returnvaluemy
2条回答

firebase数据 image of firebase realtime storage

在python.py在

firebase = Firebase(config)
db = firebase.database()
x = db.child("Home page").get()
output = {
     'value':x
   }
return render(request, "index.html",output)

在索引.html在

^{pr2}$

如果在会话中存储有序dict,则不会保留该顺序。默认情况下,Django会话被序列化为JSON。当它被反序列化时,您将得到一个常规字典,因此顺序将丢失。在

如果排序很重要,并且不必按键访问字典值,则可以使用元组列表代替:

my_olist = [] 
my_olist.append(('bananas', 3))
my_olist.append(('apples', 1))

然后更新模板以在列表中循环:

^{pr2}$

相关问题 更多 >