src/hdabo/forms.py
author ymh <ymh.work@gmail.com>
Thu, 19 Mar 2015 23:39:54 +0100
changeset 559 1357a0cfdbf7
parent 266 825ff4d6a8ac
child 660 04255afd160e
permissions -rw-r--r--
continue django 1.7 upgrade

# -*- coding: utf-8 -*-
from django import forms
from django.db.models.query import QuerySet


class SortedMultipleChoiceField(forms.ModelMultipleChoiceField):
    def clean(self, value):
        queryset = super(SortedMultipleChoiceField, self).clean(value)
        if value is None or not isinstance(queryset, QuerySet):
            return queryset
        object_list = dict((
            (unicode(key), value)
            for key, value in queryset.in_bulk(value).iteritems()))
        return [object_list[unicode(pk)] for pk in value]