장고에서 update치는 쿼리를 날리다가 다음과 같은 오류가 발생했다.

Exception Value: 'Student' object has no attribute 'update'

schedule_event = ScheduleEvent.objects.get(pk=schedule_event_id)

            schedule_event.update(
                type_code_id=type_code_id,
                start_date=start_date,
                end_date=end_date,
                cycle=cycle,
                last_update_date=timezone.now()
            )

원인

이유는 objects.get 때문이었다. get을 사용하면 단일 object 반환한다. 그러나 update는 query set에서만 작동하기 때문에 오류가 발생한 것이다.

 

해결

filter를 사용하여 해결할 수 있다.

schedule_event = ScheduleEvent.objects.filter(pk=schedule_event_id)

            schedule_event.update(
                type_code_id=type_code_id,
                start_date=start_date,
                end_date=end_date,
                cycle=cycle,
                last_update_date=timezone.now()
            )

 

'Django' 카테고리의 다른 글

Django - update 전 후 쿼리 결과의 변화(Lazy Loading)  (0) 2021.09.27
Django-HttpRequest Data 변경  (0) 2021.09.24
Django __str__  (0) 2021.08.30
Django 쿼리문 F() 사용하기  (0) 2021.08.04
Django ORM query set 중복 제거  (0) 2021.07.26

+ Recent posts