PtoHistoryモデルで正しく表示されない:Djangoのモデルフィールドは、Djangoの管理者
class PtoHistory(models.Model):
LEAVE_CHOICES = (
(True, 'PTO'), #is chargeable?
(False, 'Jury Duty'), #is chargeable?
(False, 'Voting'), #is chargeable?
(False, 'Military Leave'), #is chargeable?
(False, 'Bereavement'), #is chargeable?
(True, 'Emergency'), #is chargeable?
)
user = models.ForeignKey(User, on_delete=models.CASCADE)
leave_start_date = models.DateTimeField(auto_now=False, auto_now_add=False)
leave_end_date = models.DateTimeField(auto_now=False, auto_now_add=False)
leave_type = models.BooleanField(choices=LEAVE_CHOICES)
def __str__(self):
return self.user.username
問題を:
私はDjangoの管理者の内部で "leave_type" を変更するたびに、ために例えば、 "Emergency"ではdjangoの管理者には "PTO"と表示されますが、両方ともTrueですが、PTOがタプルの最初に表示され、djangoの管理者に "PTO"が表示されます。 Falseであるすべてのオプションについても同じことが起こります。 「Military Leave」が選択されて保存されている場合、Django管理者のビューでは、「Jury Duty」がタプルの最初のfalseであるため、「Jury Duty」として表示されます。
私は起こるしたい何:
ユーザが「死別」を選択した場合、私は「死別」は、選択した選択肢としてDjangoの管理者に表示したいと私はしたいですこれは、従業員のPTO時間に対してカウントされないことを意味するFalse値に対応します。
希望の出力が理解できることを願っています。必要な場合は、より明確化またはコードスニペットを提供できます。正直なところ、私は正しい方法でそれについて行くのかどうか分からない。ですから、私のモデルを何らかの方法で再構築する必要がある場合、私はある方向に感謝します。
寝てしまったので、私はキーと値のペアを保存できるところでこの問題を解決するにはPython辞書が最適な方法だと思っていますが、私はdjangoモデルのフィールド型 "辞書" 。
おかげを持ち、ラジオボタンウィジェットを定義します@PetarP。それぞれの休暇タイプを真偽値に対応させるにはどうすればよいでしょうか?これは可能ですか?私が今持っている方法では、ユーザーは選択肢のドロップダウンリストを取得するので、ソリューションは実際にフロントエンドで相互作用する方法を変えることはありません。 – FlashBanistan
'' boolean'フィールドのみに関連しています。ここに 'forms.py'の' RadioSelect'ウィジェットをどのように使用できるかについての例[http://stackoverflow.com/a/3961084/4107823]があります。 – PetarP
@ AaronChesley私は自分の答えを更新しました – PetarP