21

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()

アイデアは、ユーザーが後で日付と時刻を 2 つの異なるフィールドとして調整できるようにすることです。

日付と時刻ではなく、時刻を表示して受け入れるためだけに時刻フィールドを作成する方法が少しわかりません。日時のない時間フィールドを持つことはできないと思いますが、フォームに時間だけを表示するにはどうすればよいでしょうか?

4

1 に答える 1

36

時間だけが必要な場合は、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])

Pythonではdatetime.timeインスタンスで表される時間。DateFieldと同じ自動入力オプションを受け入れます。

を使用するauto_now_addと、オブジェクトが最初に作成されたときにフィールドが自動的にnowに設定されます。

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)
于 2012-07-08T19:01:01.993 に答える