반응형
Django 모델 폼 객체의 자동 생성 날짜
개체의 작성 날짜를 자동으로 설정하고 개체가 마지막으로 업데이트된 시간을 기록할 필드를 설정하는 가장 좋은 방법은 무엇입니까?
models.py:
created_at = models.DateTimeField(False, True, editable=False)
updated_at = models.DateTimeField(True, True, editable=False)
views.py:
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
obj = form.save(commit=False)
obj.user = request.user
obj.save()
return HttpResponseRedirect('obj_list')
다음과 같은 에러가 표시됩니다.
objects_object.created_at may not be NULL
이 값은 직접 설정해야 합니까?난 그게 전달된 파라미터의 요점이라고 생각했는데DateTimeField
(아니면 디폴트만 설정했을 뿐이고,editable=False
폼에 표시되지 않기 때문에 요청에 제출되지 않기 때문에 폼에 입력되지 않습니다.
어떻게 하면 좋을까요?안__init__
방법?
및 옵션을 사용할 수 있습니다.updated_at
그리고.created_at
각각 다음과 같다.
class MyModel(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
위의 답변은 정확합니다.auto_now_add와 auto_now는 가능하지만 추상 클래스를 만들어 필요한 모델에 사용하는 것이 좋습니다.created_at
그리고.updated_at
[ ]를 클릭합니다.
class TimeStampMixin(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
abstract = True
이제 사용하려는 모든 위치에서 간단한 상속을 수행할 수 있으며, 원하는 모델에 타임스탬프를 사용할 수 있습니다.
class Posts(TimeStampMixin):
name = models.CharField(max_length=50)
...
...
이렇게 하면 Django DRY에서 객체 지향의 재사용성을 활용할 수 있습니다(반복하지 말 것).
언급URL : https://stackoverflow.com/questions/3429878/automatic-creation-date-for-django-model-form-objects
반응형
'programing' 카테고리의 다른 글
PHP5에 오류가 있습니다.동적 라이브러리를 로드할 수 없습니다. (0) | 2022.09.22 |
---|---|
PHP & mySQL: 2038년 버그: 뭐죠?어떻게 해결할까요? (0) | 2022.09.22 |
iframe에서 'X-Frame-Options'를 설정하는 방법 (0) | 2022.09.22 |
스태틱 클래스의 초기화는 언제 이루어집니까? (0) | 2022.09.22 |
Vue 2 App에서 Express service 정적 (0) | 2022.09.22 |