いつも質問させてもらい大変助かっております。
今回も質問させて下さい。
Djangoで Modelを作成する際に、特定のfieldにchoiceを付けて、それに付随するFormをModelFormとして動かしているのですが、表示した選択項目の順序が私が、イメージしている書いた通りの順序になりません。
どなたかのアドバイス等がありましたら幸いです。
Modelのコードは
python
1from core.choices import RANK_CHOICE, BUNRUI_CHOICE, TAIOU_CHOICE 2 3 4class Report(TimeStampedModel): 5 customer = models.ForeignKey( 6 Customer, on_delete=models.CASCADE, verbose_name="顧客", 7 related_name="report_customer", null=True, blank=True 8 ) 9 tant = models.ForeignKey( 10 User, on_delete=models.CASCADE, verbose_name="担当", 11 related_name="customer_tant", null=True, blank=True) 12 taiousha = models.ForeignKey( 13 User, on_delete=models.CASCADE, verbose_name="対応者", 14 related_name="customer_taiousha", null=True, blank=True) 15 16 taiou = models.CharField( 17 choices=TAIOU_CHOICE, 18 verbose_name="対応", max_length=20, blank=True) 19 20 rank = models.CharField( 21 choices=RANK_CHOICE, 22 verbose_name="ランク", max_length=2, blank=True) 23 bunrui = models.CharField( 24 choices=BUNRUI_CHOICE, 25 verbose_name="分類", max_length=4, blank=True) 26 27 day = models.DateField( 28 verbose_name="日付", blank=True, null=True) 29 30 report = models.TextField( 31 blank=True, verbose_name="日報") 32 33 def __str__(self): 34 return self.customer.name + str(self.pk) + "日報" 35 36 def get_absolute_url(self): 37 return reverse('report:edit', kwargs={'pk': self.pk})
choiceを読み込ませているコードは(choices.py)
python
1TAIOU_CHOICE = { 2 ('', '--'), 3 ('電話:受け', '電話:受け'), 4 ('電話:掛け', '電話:掛け'), 5 ('メール:受け', 'メール:受け'), 6 ('メール:送る', 'メール:送る'), 7 ('来社', '来社'), 8 ('訪問', '訪問'), 9} 10 11RANK_CHOICE = { 12 ('', '--'), 13 ('A', 'A'), 14 ('B', 'B'), 15 ('C', 'C'), 16 ('D', 'D'), 17} 18 19BUNRUI_CHOICE = { 20 ('', '--'), 21 ('買主', '買主'), 22 ('借主', '借主'), 23 ('地主', '地主'), 24 ('介護', '介護'), 25}
Formのコードは(forms.py)
python
1from django import forms 2from .models import Report 3 4 5class ReportModelForm(forms.ModelForm): 6 7 def __init__(self, *args, **kwargs): 8 super(ReportModelForm, self).__init__(*args, **kwargs) 9 self.fields['tant'].label_from_instance = lambda obj: "{}{}".format( 10 obj.last_name, obj.first_name) 11 self.fields['taiousha'].label_from_instance = lambda obj: "{}{}".format( 12 obj.last_name, obj.first_name) 13 14 class Meta: 15 model = Report 16 fields = [ 17 'tant', 'taiousha', 'taiou', 18 'rank', 'bunrui', 'day', 'report', 19 ] 20 widgets = { 21 'day': forms.TextInput(attrs={'type': 'date'}), 22 }
以上です。
分類の選択項目を例に上げると
↓↓
上記の様に、 --・買主・借主・地主・介護の順に表示したい所が、バラバラの順序で表示されてしまいます。
なにかアドバイス頂けると幸いです。
何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。