我有在Django模型,下面的示例代碼(不是我的實際代碼):控制的Django的ModelForm輸出
class Department(models.Model):
name = models.CharField(max_length=100)
abbreviation = models.CharField(max_length=4)
比方說我做Django的外殼下面:
>>> Department(name='Computer Science',abbreviation='C S ').save()
>>> Department(name='Mathematics',abbreviation='MATH').save()
>>> Department(name='Anthropology',abbreviation='ANTH').save()
我現在有四個部門存儲在我的數據庫中。假設我們有另一個類,Course
,屬於一個Department
:如果我剛好referncing變量直接渲染ModelForm
對象在模板
class Course(models.Model):
department = models.ForeignKey('Department')
number = models.IntegerField()
class CourseForm(ModelForm):
class Meta:
model = Course
,說form
,這得到了傳下來,各部門出現在下拉框(一個HTML選擇框)。到現在爲止還挺好。
問題是:選擇框中的項目按ID排序。因此,他們的出現:
- 計算機科學
- 數學
- 人類學
但是,我想他們按字母順序排序,即
- 人類學
- 計算機科學
- 數學
我如何改變這些項目在t中的排序方式他ModelForm
代碼,或者在Model
代碼中,而不是在模板中?
而且一般情況下,如何在由ModelForm
生成特定字段或小部件時自定義方式?
謝謝!這確實是我在找的東西。 – 2009-08-17 18:03:15
哇 - 很好的答案! – sage 2014-01-11 22:31:54