Как я указываю порядок значений в выпадающем списке в Django ModelForm?

Хорошо, вот вопрос.

class UserForm(forms.ModelForm):   

    class Meta:
        model = User
        fields = ('team',  'related_projects') 

В models.py User класс определяется следующим образом:

class User (models.Model):
    team = models.ForeignKey(Team, verbose_name = _('team'))
    related_projects = models.ManyToManyField(Project, blank = True)

Оба team и related_projects представляются как выпадающее поле. Значения являются всеми существующими командами в системе и всеми существующими проектами в системе. Все в порядке, но им только заказывает первичный ключ, и я хотел бы видеть их заказанный в алфавитном порядке. Где я должен указать упорядочивание для значений в выпадающем списке?

6
задан Hannele 6 March 2012 в 18:21
поделиться

1 ответ

Вам нужно будет указать переопределение для поля team , а затем вы сможете переопределить порядок с его аргументом queryset . Здесь я предполагаю, что свойство в Team , по которому вы хотите выполнить сортировку, - это name .

class UserForm(forms.ModelForm):
    team = forms.ModelChoiceField(queryset=Team.objects.order_by('name'))

    class Meta:
        model = User
        fields = ('team',  'related_projects') 

Подробнее о ModelChoiceField можно прочитать здесь: http://docs.djangoproject.com/en/dev/ref/forms/fields/#modelchoicefield

14
ответ дан 8 December 2019 в 17:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: