Django QuerySet update Field with first() method Error

lightcat·2022년 9월 28일
0

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()로 받아와 해당 객체에 값을 입력하니 그제서야 제대로 업데이트되는 것을 확인하였다.

0개의 댓글

관련 채용 정보