[Django] ValueError: save() prohibited to prevent data loss due to unsaved related object

2022. 5. 18. 16:38TIL/Error

Project 테이블과 Subject 테이블이 OneToMany로 연결되어 있는데

project = Project.objects.first()
subject = Subject.objects.first()

로 각 객체를 가져와서(실제로는 first() 사용 안함) 담아주었다. 그리고 나서 project에 해당하는 subject가 수정되면 project.subject.id = 3 이런 식으로 변경해 주었는데 해당 에러가 났다. ValueError: save() prohibited to prevent data loss due to unsaved related object 'subject'.

찾아 본 결과 project.subject.id는 subject의 id가 변경된 것이었고 project의 subject 외래키 필드를 바꾸기 위해서는 그냥 project.subject = <subject 3번에 해당하는 subject 객체> 이런 식으로 변경하면 된다.

반응형

'TIL > Error' 카테고리의 다른 글

[Ubuntu] couldn't communicate with the NVIDIA driver  (0) 2022.08.16
[Django] Application labels aren't unique  (0) 2022.04.11