سؤال

لدي قاموس يحتوي على قائمة بالأوقات التي أرغب في عرضها في قالب:

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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top