好的,这是问题所在。
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
都会呈现为下拉框。值是系统中的所有现有团队以及系统中的所有现有项目。没关系,但它们只是按主键排序,我希望看到它们按字母顺序排序。我应该在下拉列表中指定值的排序?
答案 0 :(得分:14)
您需要为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