我有這個模型
class Appointments(models.Model):
options = (
('waiting', 'In Attesa'),
('confirmed', 'Confermato'),
('closed', 'Chiuso'),
)
duration = (
('15', '15 minuti'),
('20', '20 minuti'),
('30', '30 minuti'),
('40', '40 minuti'),
)
date = models.DateTimeField(default=timezone.now)
patient_first_name = models.CharField(max_length=250)
patient_last_name = models.CharField(max_length=250)
patient_email = models.EmailField(_('email address'))
patient_phone = models.CharField(max_length=250)
doctor = models.ForeignKey(Doctor, on_delete=models.PROTECT)
room = models.ForeignKey(Room, on_delete=models.PROTECT, default=1)
status = models.CharField(max_length=10, choices=options, default='waiting')
message = models.TextField(null=True, blank=True)
notes = models.TextField(null=True, blank=True)
appointment_date = models.DateTimeField(null=True, blank=True)
duration = models.CharField(max_length=10, choices=duration, default='15')
class Meta:
ordering = ('-date', )
unique_together = ('appointment_date', 'room', )
如何appointment_date在沒有秒的情況下在資料庫中存盤值?現在的價值是這樣的,2021-11-05 17:30:43
我想將它存盤為2021-11-05 17:30
那是因為否則unique_together對于我需要的東西基本上是無用的。
uj5u.com熱心網友回復:
我寫了一篇關于構建 a 的變體的文章,該變體DateTimeField將截斷為周、月、分鐘等。
在這種情況下,我們可以MinuteDateTimeField使用:
# app_name/fields.py
from datetime import timedelta
from django.db.models import DateTimeField
class DateTruncMixin:
def truncate_date(self, dt):
return dt
def to_python(self, value):
value = super().to_python(value)
if value is not None:
return self.truncate_date(value)
return value
class MinuteDateTimeField(DateTruncMixin, DateTimeField):
def truncate_date(self, dt):
return dt.replace(second=0, microsecond=0)
然后你可以使用它MinuteDateTimeField:
# app_name/models.py
from app_name.fields import MinuteDateTimeField
class Appointments(models.Model):
# ?
appointment_date = MinuteDateTimeField(null=True, blank=True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/342512.html
