#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
, спасибо