현재 프로젝트의 일반적인 모델에 date_added 및 date_modified 필드를 추가하고 있습니다. 모델을 서브 클래스 화하고 적절한 필드를 추가하고 있지만 자동화 된 저장 동작을 추가하려고합니다. 예를 들어, 누구든지 MyModel.save()를 호출하면 date_modified 필드가 업데이트됩니다. 두 가지 접근법을 볼 수 있습니다. save() 메서드를 재정의합니다 또는 추상 기본 클래스의 pre_save 신호 처리기를 추가.Django의 여러 모델에 일반적인 date_added, date_modified를 추가하는 가장 좋은 방법
class CommonData(models.Model):
date_added = models.DateTimeField(default=datetime.datetime.today,null=False,blank=False)
date_modified = models.DateTimeField(default=datetime.datetime.today,null=True,blank=True)
# register a handler for the pre_save to update date_modified
def pre_save_handler(sender, **kwargs):
date_modified = datetime.datetime.today
def __init__():
pre_save.connect(pre_save_handler, sender=self)
또는
class CommonData(models.Model):
date_added = models.DateTimeField(default=datetime.datetime.today,null=False,blank=False)
date_modified = models.DateTimeField(default=datetime.datetime.today,null=True,blank=True)
# overriding save
def save(force_insert=False,force_update=False):
date_modified = datetime.datetime.now
return models.Model.save(force_insert, force_update)
내가 장고와 파이썬에 새로 온 사람보다 "장고"하는 방식이었다 궁금하세요? 더 효율적입니다 무엇입니까? 이 작업을 수행하는 "올바른"방법입니까?
감사합니다 prometheus, 나는 명령 확장을 알지 못했습니다. 나는 python/django를 마음에 듭니다 ... 그러나, 일을하는 많은 방법이 있습니다! – Deano