如何在Django中建模TimeField?

时间:2012-07-08 18:33:58

标签: django

我已经建模了一个名为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()

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

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

1 个答案:

答案 0 :(得分:25)

如果您只想要时间,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选项:

  

class TimeField([auto_now = False,auto_now_add = False,** options])

     

一个时间,由datetime.time实例在Python中表示。接受   与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)