تم فرزها في جانغو
-
13-12-2019 - |
سؤال
لدي قاموس يحتوي على قائمة بالأوقات التي أرغب في عرضها في قالب:
from django.utils.datastructures import SortedDict
time_filter = SortedDict({
0 : "Eternity",
15 : "15 Minutes",
30 : "30 Minutes",
45 : "45 Minutes",
60 : "1 Hour",
90 : "1.5 Hours",
120 : "2 Hours",
150 : "2.5 Hours",
180 : "3 Hours",
210 : "3.5 Hours",
240 : "4 Hours",
270 : "4.5 Hours",
300 : "5 Hours"
})
أريد إنشاء قائمة منسدلة في القالب:
<select id="time_filter">
{% for key, value in time_filter.items %}
<option value="{{ key }}">{{ value }}</option>
{% endfor %}
</select>
لكن العناصر الموجودة في القائمة المنسدلة لا تأتي بالترتيب المحدد في القاموس.ماذا ينقصني؟
المحلول
انظر هنا .
أنت تقوم بعمل "هذا لا يعمل"، I.E. يعطي قاموس> قوي كإدخال في القاموس الفرز.
تريد
giveacodicetagpre.نصائح أخرى
فكر في استخدام أحد تطبيقات القاموس العديد من Python الذي يحافظ على المفاتيح في الترتيب الفرز.على سبيل المثال، الوحدة النمطية SortEdContainers هي تطبيقات Pure-Python وسريعة AS-C.وهو يدعم عمليات الحصول على سريع / مجموعة / ITER ويحافظ على مرتبة المفاتيح.هناك أيضا مقارنة الأداء أن المعايير التنفيذ ضد العديد من الخيارات الشعبية الأخرى.
يمكنك إنشاء مثيل SortedDict
مع "عادي" dict
كحجة - فقد طلبك.يجب عليك إنشاء مثيل SortedDict
مع تكراري يحافظ على الترتيب، على سبيل المثال:
SortedDict((
(0, "Eternity"),
(15, "15 Minutes"),
# ...
))
قد لا يجيب هذه الإجابة بالضبط على السؤال، يمكنك استخدام "Dictsort" و "Dictsorrifersed" من علامات قالب Django لفرز DICT العادي.لذلك ليست هناك حاجة لاستخدام sorteddict.