Model.objects.filter
기능을 이용하여 QuerySet
을 조회해, 특정값을 다시 UPDATE
시키고 싶은데 의도한대로 되지 않는 현상이 있었다.
price_info_status = StockInfoUpdateStatus.objects.filter(table_type='P') \
.filter(stock_event_id=event_info.stock_event_id)
위와 같이 조회하여
price_info_status_element = price_info_status.first()
price_info_status.first().mod_dt = datetime.date.today()
print('today = ',datetime.date.today(),', type = ',type(datetime.date.today()))
print('mod_dt = ',price_info_status.first().mod_dt,', type = ',type(price_info_status.first().mod_dt))
===============================================
today = 2022-09-29 , type = <class 'datetime.date'>
mod_dt = 2022-09-26 , type = <class 'datetime.date'>
QuerySet
중 하나를 택하기 위해 first()
메소드를 사용하여 가져온다음 바로 컬럼에 값을 입력하도록 price_info_status.first().mod_dt
처럼 사용하였는데, mod_dt
가 업데이트 되지 않는 현상이었다.
price_info_status_element = price_info_status.first()
price_info_status_element.mod_dt = datetime.date.today()
print('mod_dt 2 = ',price_info_status_element.mod_dt,', type = ',type(price_info_status.first().mod_dt))
===============================================
mod_dt 2 = 2022-09-29 , type = <class 'datetime.date'>
위처럼 미리 Model
객체를 first()
로 받아와 해당 객체에 값을 입력하니 그제서야 제대로 업데이트되는 것을 확인하였다.