如何使用 django-admin 命令将时间发送到模型?

How to send time to model usinig django-admin commands?

我想知道如何通过 django-admin 命令 class 向 django DateTimeField 发送时间,我所说的时间是指实际的小时和分钟而不是日期。谢谢

我的 django 管理命令 class

class Command(BaseCommand):

def handle(self, *args, **kwargs):
    title = 'new new post'
    try:
        MyModel.objects.create(
            title=title,
            mytime= '???',
        )
        print('%s added' % (title,))
    except:
        print('error')

我的模型

class MyModel(models.Model):
title = models.CharField(max_length=250)
mytime = models.DateTimeField(null=True, blank=True)

def __str__(self):
    return self.title

由于您正在使用 DateTimeField,因此您不能只保存时间,但您可以稍后从中提取时间 (record.mytime.time())。

您正在寻找函数 datetime.now:

from datetime import datetime
MyModel.objects.create(
        title=title,
        mytime=datetime.now(),
    )

但是 Django 提供了更方便的方法来做到这一点 - DateTimeField 有一个标志 auto_now,它在保存期间自动设置时间(或者 auto_now_add 如果你只想在模型已创建)

class MyModel(models.Model):
    mytime = models.DateTimeField(null=True, blank=True, auto_now=True)

使用单独的 DateFieldTimeField 解决了它,谢谢