我目前有一个我通过django.forms.ModelForm
创建的表单。我已经列出了表单中其中一个CharFields的选择,但是在翻译时,选择当然是乱序的 - 它们保持在models.py
中列出的顺序。我希望选择在翻译语言中按字母顺序排列。如何进行翻译,然后对它们进行排序,以便在表单中按字母顺序列出?
我想我可能必须覆盖self.fields的__init__
方法,但是无法以成功重新排序我的类别的方式这样做。
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
SORTED_CATEGORIES = sorted(CATEGORIES)
self.fields['category'].choices = SORTED_CATEGORIES
答案 0 :(得分:2)
__init__
方法中的排序看起来不错。请记住,只有元组中的第二项被翻译,所以你想根据它进行排序。
SORTED_CATEGORIES = sorted(CATEGORIES, key=lambda x: x[1])