【发布时间】:2016-12-23 20:34:36
【问题描述】:
我想要发生的事情:
我正在 django 中构建一个 PTO(带薪休假)应用程序。我希望用户能够在 4-5 种不同的休假类型之间进行选择,例如“Jusry Duty”、“Voting”、“Emergency”等,并且我希望这些字符串指向 True 或 False 值,以确定是否休假类型是否计入用户的总 PTO 小时数。
问题:
正确的 True 或 False 值被保存到数据库中,但是当我从 django admin 中查看记录时,如果它是 True 值,它总是显示为“PTO”,如果它是 False 值,它总是显示被称为“陪审团义务”。我相信它表现得这样的原因是因为“PTO”是元组中的第一个 True 值,而“Jury Duty”是元组中的第一个 False 值。
我的尝试:
我现在拥有的是我的 PtoHistory 模型上的一个布尔字段,它接受一个 LEAVE_CHOICES 元组。
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 管理员中的外观。
【问题讨论】:
标签: django sqlite django-models