Django model update(수정) 수정 시간이 트리거되지 않았습니다.

1217 단어 django
우리는django에서 모델 디자인에 일반적으로 자주 사용하는 두 필드의 창설 시간과 수정 시간이 있다는 것을 알고 있다. 이 두 필드의 정의는 다음과 같다.
    created = models.DateTimeField(auto now add=True,verbose name=시간 추가) updated = models.DateTimeField (auto now=True, verbose name=업데이트 시간)
일반적으로 당신이 이 표의 데이터를 수정할 때 수정 시간은 이에 따라 변동할 수 있다. 그러나 나는 당신이 이 데이터의 내용을 수정했지만 수정 시간은 변동이 없다는 상황을 만났다.
문제 해결:
업데이트를 수정하는 두 가지 방법이 있습니다.
1)save
모델 클래스 대상의 속성을 수정한 다음save () 방법을 실행합니다
hero = HeroInfo.objects.get(hname='   ')
hero.hname = '   '
hero.save()

2)update
모델 클래스를 사용합니다.objects.filter().업데이트 (), 영향을 받은 줄 수를 되돌려줍니다
HeroInfo.objects.filter(hname='   ').update(hname='  ')

첫 번째 수정 업데이트 방법은 업데이트 d = 모델을 터치하는 것입니다.DateTimeField(auto now=True,verbose name="업데이트 시간"필드의 업데이트 시간은 두 번째 필드가 트리거되지 않습니다.
그래서 만약에 업데이트된 데이터가 업데이트 시간을 촉발하지 않았다면 두 번째 방법을 사용했는지 확인하고 첫 번째 수정 방식으로 바꾸면 된다.
해결 방법:
업데이트와 같은 방법으로 여러 데이터를 수정하고 업데이트 시간의 필드를 터치하려면 다음과 같이 하십시오.
수정 데이터를 추가해서 수정 시간이라는 필드를 현재 시간으로 수정하면 됩니다.
StockChange.objects.filter(order_no=order_no).update(status=2, updated=datetime.now())
 
자세한 내용 참조:http://www.chenxm.cc/post/658.html

좋은 웹페이지 즐겨찾기