models.py장고 모델 DateTimeField (기본 = 다음 3 일)
class TestModel(models.Model):
event = models.DateTimeField(default=next 3-days)
어떻게 3 일 다음 기본을 얻는 방법? 가능합니까?
models.py장고 모델 DateTimeField (기본 = 다음 3 일)
class TestModel(models.Model):
event = models.DateTimeField(default=next 3-days)
어떻게 3 일 다음 기본을 얻는 방법? 가능합니까?
당신은 예를 들어, 당신이 원하는 날짜를 반환하는 호출 사용한다 : 당신이하기 Vaibhav의 대답으로 x = datetime.datetime.now() + datetime.timedelta(days = 3)
를 사용하는 경우
from datetime import timedelta
from django.utils import timezone
def in_three_days():
return timezone.now() + timedelta(days=3)
class TestModel(models.Model):
event = models.DateTimeField(default=in_three_days)
을, 모듈이로드 될 때 다음 x
이 계산됩니다, 새로운 각각의 TestModel
인스턴스가 생성 될 때가 아닙니다.
아이디어가 맞습니다. "in_three_days"함수에서 datetime.now()를 사용하면 시간 영역을 인식하지 못하고 문제가 발생할 수 있습니다. –
@GiorgiJambazishvili 좋은 지적으로 사용 코드를 업데이트했습니다. 'timezone.now()'. – Alasdair
여기 방법이 있습니다.
import datetime
class TestModel(models.Model):
x = datetime.datetime.now() + datetime.timedelta(days = 3)
event = models.DateTimeField(default = x)
이것은 서버가로드 될 때'x '를 한 번 계산합니다. datetime을 반환하는 호출 가능 함수를 사용해야합니다. – Alasdair
나는 그것을 얻지 못했습니다 ..'x'를 반환하는 짧은 함수를 정의하는 것이 더 좋을 것이라고 말하는 것을 의미합니까 ?? 방법?? 조금 생각해 주시겠습니까 –
몇 가지 대답은 호출 가능해야하지만 시간대 인식 datetime 개체를 포함해야 다음 3 일을 올바르게 설정할 수 있으며 이는 예상대로 작동하며 서버에 의존하는 시간대를 인식하지 못하는 datetime 개체를 제공하지 않습니다
from django.utils import timezone as tz
def next_day_dt(n=3):
return tz.localtime(tz.now()) + tz.timedelta(days=n)
class TestModel(models.Model):
event = models.DateTimeField(default=next_day_dt)
...
시간
는
는 "다음 삼일"무엇을 의미합니까 도움이되기를 바랍니다? 이것은 * datetime *이 아닌 * period *입니다. –
예 기간, 다음 3 기간 – Sam
오늘부터 3 일 후를 의미합니까? – Dalvtor