[REAL Python – Django] – “Django – 저자 정보 삭제시 정보를 null로 채우기, 포스트에 저자 정보 출력하기”

[REAL Python – Django] – “Django – 저자 정보 삭제시 정보를 null로 채우기, 포스트에 저자 정보 출력하기”

2월 27, 2022

on_delete=models.SET_NULL 설정

author = models.ForeignKey(User, null=True, on_delete=models.SET_NULL)

models.pyauthor 필드 부분을 수정합니다. on_delete=models.SET_NULLDB에서 작성자가 삭제되면 정보를 null로 채운다는 뜻입니다. null=True 부분을 왜 사용하지에 대해서는, 아래의 문서에서 답을 찾을 수 있었습니다.

https://django-orm-cookbook-ko.readthedocs.io/en/latest/null_vs_blank.html

null=True 는 필드의 값이 NULL(정보 없음)로 저장되는 것을 허용합니다. 결국 데이터베이스 열에 관한 설정입니다.

실제로 null=True 코드를 작성해주지 않으면 오류가 납니다. null의 기본 옵션은 False 이기 때문입니다. null=True 를 작성해 주어서 author 필드에 NULL이 저장되는 것을 허용해 주어야 합니다.

관리자 페이지에서 임의의 사용자를 추가한 다음, 글을 작성한 후 사용자를 삭제해 봅시다. 그러면 작성자 정보가 None으로 뜨는 것을 확인할 수 있습니다.

템플릿에 저자를 출력하도록 코드 작성

{{ p.author | upper }}

현재 제가 만들고 있는 post.list 템플릿에서는 for문이 p로 돌고 있으므로 위의 코드를 작성자를 표시하고 싶은 부분에 추가해 줍니다.

{{ post.author | upper }}

post.detail 템플릿에서는 위의 코드를 작성자를 표시하고 싶은 부분에 추가해주면 되었습니다.

각각 포스트 상세 페이지와 리스트 페이지에서 정상적으로 데이터베이스에 있는 작성자 정보가 출력된 것을 볼 수 있습니다.

Leave A Comment

Avada Programmer

Hello! We are a group of skilled developers and programmers.

Hello! We are a group of skilled developers and programmers.

We have experience in working with different platforms, systems, and devices to create products that are compatible and accessible.