장고에서 모델에 기본 타임 스탬프 필드가 있습니까?
장고에서-모든 객체에 대한 기본 타임 스탬프 필드가 있습니까? 즉, Model에서 'created on'에 대한 'timestamp'필드를 명시 적으로 선언해야합니까? 아니면 자동으로 가져올 수있는 방법이 있습니까?
기본적으로 그러한 것은 없지만 하나를 추가하는 것은 매우 쉽습니다. 클래스 에서 auto_now_add
매개 변수를 사용하십시오 DateTimeField
.
created = models.DateTimeField(auto_now_add=True)
auto_now
'업데이트 날짜'필드 에도 사용할 수 있습니다 . auto_now
여기서 의 동작을 확인 하십시오 .
auto_now_add
여기 를 위해 .
두 필드가 모두있는 모델은 다음과 같습니다.
class MyModel(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
자동으로 django가 기본적으로 수행하는 것처럼 들리지 않습니다. 타임 스탬프를 요구하지 않아도됩니다.
타임 스탬프 / 필드 이름 등을 잊지 않으려면 추상 기본 클래스를 만들고 모든 모델을 상속합니다.
class TimeStampedModel(models.Model):
created_on = models.DateTimeField(auto_now_add=True)
class Meta:
abstract = True
wherever.TimeStampedModel
대신 가져 오는 것이 별로 보이지 않는 것 같습니다.django.db.models.Model
class MyFutureModels(TimeStampedModel):
....
당신이 사용하는 경우 장고 - 확장 당신이 상속에 의해 무료로이 모델 필드를 얻을 수 있습니다합니다 (django-admin.py 명령 줄 도우미에 기능을 추가하기위한 좋은 응용 프로그램입니다) 자신의 TimeStampedModel 자신 또는 사용하여 사용자 정의 타임 스탬프 필드를
django-extensions를 사용해 볼 수 있습니다.
타임 스탬프 추상 모델을 사용하려는 경우
from django_extensions.db.models import TimeStampedModel
class A(TimeStampedModel):
...
다른 추상 모델이 있습니다. 그것도 사용할 수 있습니다.
이 필드를 수정할 수 있도록하려면 대신 다음을 설정하십시오. auto_now_add=True:
날짜
from datetime import date
models.DateField(default=date.today)
DateTime의 경우
from django.utils import timezone
models.DateTimeField(default=timezone.now)
나는 함께 갈 것이라고 생각한다
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
사용에 대한 설명이 필요합니다.
class TimeStampedModel(models.Model):
created_on = models.DateTimeField(auto_now_add=True)
class Meta:
abstract = True
참고 URL : https://stackoverflow.com/questions/8016412/in-django-do-models-have-a-default-timestamp-field
'IT TIP' 카테고리의 다른 글
알고리즘의 익숙하지 않은 기호 : ∀은 무엇을 의미합니까? (0) | 2020.10.13 |
---|---|
subprocess.check_output ()이 존재하지 않는 것 같습니다 (Python 2.6.5) (0) | 2020.10.13 |
Xcode 4“Clean”vs.“Clean Build Folder” (0) | 2020.10.13 |
adapter-Any real example of Adapter Pattern (0) | 2020.10.13 |
VBA를 사용하여 파일이 있는지 확인하십시오. (0) | 2020.10.13 |