Wenn Sie nur Zeit wollen, ist TimeField was Sie benötigen:
class ConversationHistory(models.Model): contact_date = models.DateField(_(u"Conversation Date"), blank=True) contact_time = models.TimeField(_(u"Conversation Time"), blank=True)
Sie können die Option auto_now_add
nutzen:
class TimeField([auto_now=False, auto_now_add=False, **options])
Eine Zeit, dargestellt in Python durch eine datetime.time-Instanz. Akzeptiert dieselben Optionen zum automatischen Ausfüllen wie DateField.
Wenn Sie auto_now_add
verwenden, wird das Feld automatisch auf jetzt gesetzt, wenn das Objekt zum ersten Mal erstellt wird.
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)
TimeField ist ein Zeitfeld, das die Zeit speichert, dargestellt in Python durch eine datetime.time-Instanz. Wie der Name schon sagt, wird dieses Feld verwendet, um ein in Python erstelltes datetime-Objekt zu speichern. Das standardmäßige Formular-Widget für dieses Feld ist ein TextInput. Der Administrator verwendet zwei separate TextInput-Widgets mit JavaScript-Verknüpfungen. Syntax
field_name = models.TimeField(auto_now=False, auto_now_add=False, **options) TimeField hat die folgenden zusätzlichen optionalen Argumente ‚Äì TimeField.auto_nowSetzt das Feld automatisch auf jetzt jedes Mal, wenn das Objekt gespeichert wird. Nützlich für „last-modified“-Zeitstempel. Beachten Sie, dass immer die aktuelle Zeit verwendet wird; es ist nicht nur ein Standardwert, den Sie überschreiben können. Das Feld wird nur automatisch aktualisiert, wenn Model.save() aufgerufen wird. Das Feld wird nicht aktualisiert wenn Sie auf andere Weise Aktualisierungen an anderen Feldern vornehmen, wie z. B. QuerySet.update(), obwohl Sie in einer solchen Aktualisierung einen benutzerdefinierten Wert für das Feld angeben können Das Objekt wird zuerst erstellt. Nützlich für die Erstellung von Zeitstempeln. Beachten Sie, dass immer die aktuelle Zeit verwendet wird; es ist nicht nur ein Standardwert, den Sie überschreiben können. Selbst wenn Sie also beim Erstellen des Objekts einen Wert für dieses Feld festlegen, wird es sein Wenn Sie dieses Feld ändern möchten, setzen Sie statt auto_now_add=True Folgendes:
- For TimeField: default=datetime.time.now – from datetime.now()
- Für TimeField: default=timezone.now ‚Äì aus django.utils.timezone.now()
Feldoptionen
Feldparameter sind Argumente, die jedem Feld gegeben werden, um eine Art von Einschränkung anzuwenden oder ein bestimmtes Merkmal an ein bestimmtes Feld zu übergeben. Wenn Sie beispielsweise das Argument null = True
zu TimeField hinzufügen, können leere Werte für diese Tabelle in einer relationalen Datenbank gespeichert werden.
Hier sind die Feldparameter und -attribute, die TimeField verwenden kann verwenden.
Feldoptionen | Beschreibung |
---|---|
Null | If True speichert Django leere Werte als NULL in der Datenbank. Standard ist Falsch. |
Leer | Wenn Wahr, darf das Feld leer sein ... Der Standardwert ist False. |
Auswahlmöglichkeiten | Ein Iterable (z. B. eine Liste oder ein Tupel) von 2-Tupeln als Auswahlmöglichkeiten für dieses Feld verwenden. |
Standard | Der Standardwert für das Feld. Dies kann ein Wert oder ein Callable Object sein. Wenn es aufrufbar ist, wird es jedes Mal aufgerufen, wenn ein neues Objekt erstellt wird. |
help_text | Zusätzlicher "Hilfetext", der mit dem Formular-Widget angezeigt wird. Es ist nützlich für die Dokumentation, auch wenn Ihr Feld nicht in einem verwendet wird |
primary_key | Wenn True, ist dieses Feld der Primärschlüssel für das Modell . |
Unique | Wenn True, muss dieses Feld in der gesamten Tabelle eindeutig sein. |