如何创建自定义 Django 模型字段来表示一个地方的开放和关闭时间
How to create custom django model field for representing opening and closing hours of a place
我有一个关于餐厅的应用程序。您可以设置它的打开和关闭时间。我通过像这样添加两个时间字段来实现。
class Place(models.Model):
# other fields
opening = models.TimeField()
closing = models.TimeField()
但是我想用一个像这样的自定义字段来做。
class Place(models.Model):
# other fields
operating_hours = models.DualTimeField()
1) 使用 CharField 并通过 属性 解析模型中的字符串,例如 "hh:mm - hh:mm"
2) 使用 Django 原生的 DurationField:
https://docs.djangoproject.com/en/1.10/ref/models/fields/#durationfield
如果你想为开放时间建模,你需要第二个字段来定义开放时间,它正在处理 timedelta。
3) 像其他人一样使用两个 TimeField。
4) 另一个选项是 MultiSelectField,用户可以在其中 select 该地点营业的时间。
OPENING_HOURS = (
(1,'1am'),
(2,'2am'),
(3,'3am'),
(4,'4am'),
...
(12,'12pm'),
)
class Place(models.Model):
# other fields
operating_hours = models.my_field = MultiSelectField( choices=MY_CHOICES)
我有一个关于餐厅的应用程序。您可以设置它的打开和关闭时间。我通过像这样添加两个时间字段来实现。
class Place(models.Model):
# other fields
opening = models.TimeField()
closing = models.TimeField()
但是我想用一个像这样的自定义字段来做。
class Place(models.Model):
# other fields
operating_hours = models.DualTimeField()
1) 使用 CharField 并通过 属性 解析模型中的字符串,例如 "hh:mm - hh:mm"
2) 使用 Django 原生的 DurationField: https://docs.djangoproject.com/en/1.10/ref/models/fields/#durationfield 如果你想为开放时间建模,你需要第二个字段来定义开放时间,它正在处理 timedelta。
3) 像其他人一样使用两个 TimeField。
4) 另一个选项是 MultiSelectField,用户可以在其中 select 该地点营业的时间。
OPENING_HOURS = (
(1,'1am'),
(2,'2am'),
(3,'3am'),
(4,'4am'),
...
(12,'12pm'),
)
class Place(models.Model):
# other fields
operating_hours = models.my_field = MultiSelectField( choices=MY_CHOICES)