views:

29

answers:

1

Ok, here is the question.

class UserForm(forms.ModelForm):   

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

In models.py class User is defined as follows:

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

Both team and related_projects are rendered as a dropdown-box, there values are all existent teams in system and all existing projects in system. That's all right, only they are ordered by primary key. And I would like to see them ordered by alphabetic order. There should I specify ordering for values in drop-down list?

+2  A: 

You'd need to specify an override for the team field and then you should be able to override the order with its queryset argument. Here I'm assuming the property in Team you want to sort on is name.

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

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

You can read more about ModelChoiceField here: http://docs.djangoproject.com/en/dev/ref/forms/fields/#modelchoicefield

Oli