その際、モデルの型が 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 件のコメント:
コメントを投稿