Как отправить время для моделирования пользовательских команд django-admin?

#python #django #django-admin

#python #django #django-admin

Вопрос:

Мне было интересно, как я могу отправить время в django DateTimeField с помощью командного класса django-admin, и по времени я имею в виду фактический час и минуту, а не дату. Спасибо

мой класс команд администратора django

 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
  

Ответ №1:

Поскольку вы используете 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)
  

Ответ №2:

решил это с помощью отдельных DateField и TimeField , спасибо