我已经建模了一个名为ConversationHistory的类。每当创建实例时,我都希望设置当前日期和当前时间。

class ConversationHistory(models.Model):
    contact_date        = models.DateField(_(u"Conversation Date"),      blank=True)
    contact_time        = models.DateTimeField(_(u"Conversation Time"),  blank=True)

    def __init__(self, *args, **kwargs):
        super(ConversationHistory, self).__init__(*args, **kwargs)
        self.contact_date    = datetime.datetime.now()
        self.contact_time    = datetime.datetime.now()


这个想法是,用户以后仍可以将日期和时间调整为两个不同的字段。

现在我有点迷茫,如何使时间字段仅显示和接受时间,而不是日期和时间。我确认不可能没有日期时间的时间字段,但是我将如何仅在表格中显示时间?

最佳答案

如果只需要时间,则需要TimeField

class ConversationHistory(models.Model):
    contact_date = models.DateField(_(u"Conversation Date"), blank=True)
    contact_time = models.TimeField(_(u"Conversation Time"), blank=True)


您可以利用auto_now_add选项:


类TimeField([auto_now = False,auto_now_add = False,** options))

时间,在Python中由datetime.time实例表示。接受
与DateField相同的自动填充选项。


如果使用auto_now_add,它将在第一次创建对象时自动将该字段设置为现在。

class ConversationHistory(models.Model):
    contact_date = models.DateField(_(u"Conversation Date"), auto_now_add=True, blank=True)
    contact_time = models.TimeField(_(u"Conversation Time"), auto_now_add=True, blank=True)

关于django - 如何在Django中建模一个TimeField?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11385607/

10-10 22:57