その際、モデルの型が ForeignKey になっている項目は、ModelChoiceField が割り当てられるが、通常、ドロップダウンの表示順は参照先テーブルのID順となる。
以下のモデルを想定する。
class Organization(models.Model):
organization_id = models.CharField(max_length = 5) # 組織ID
name = models.CharField(max_length = 20) # 組織名
def __unicode__(self):
return self.name
class User(models.Model):
staff_id = models.CharField(max_length = 7) # スタッフID
name = models.CharField(max_length = 15) # スタッフ名
organization = models.ForeignKey(Organization) # 所属組織
本来、組織ID順にソートしたいところだが、実際は組織テーブルへの登録順に表示されてしまう。
組織ID順にソートするためには、組織テーブルに Meta クラスを追加し、デフォルトの取得順序を設定する。
class Organization(models.Model):
organization_id = models.CharField(max_length = 5) # 組織ID
name = models.CharField(max_length = 20) # 組織名
def __unicode__(self):
return self.name
class Meta:
ordering = ["organization_id"]


0 件のコメント:
コメントを投稿