장고에서 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 |