Краткий ответ: Нет. Набор удалит любой порядок.
Если вы хотите упорядочить в алфавитном порядке, преобразуйте его в список и вызовите sort () для него.
field_names = list(field_names)
field_names.sort()
Вы можете проверить несколько других стековых ответов нареализовать упорядоченный набор, который будет работать с остальным кодом (set & set
):
Есть ли в Python упорядоченный набор?
Или заменитькод, который использует наборы с теми, которые используют списки:
field_names = [field.name for field in opts.fields]
if fields:
field_names = filter(lambda field: field in fields, field_names)
elif exclude:
field_names = filter(lambda field: field not in exclude, field_names)
Я не понимаю, почему модель будет иметь несколько полей с одинаковыми именами, и я не вижу какого-либо значительного прироста производительности от использованиянабор для набора из 10 элементов для периодического действия администратора, так что вы можете удалить их.