게시글이 삭제되어도 추후 댓글이 필요할 수 있으니 보존해야 한다면 SET_NULL을 사용해주어 작성된 댓글정보는 유지하고 NULL로 보이게 한다. 대신 이 상태만으로는 댓글이 어떤 게시글을 참조하고 있었는지는 확인할 수 없다. 강의 내용 참고
=>
공통 모델 클래스를 만들고
db_status 필드를 사용해 데이터를 삭제하지 않고 카테고리로 분류해준다
class CommonModel(models.Model):
db_status_choice = [
(1, 'active'),
(2, 'delete'),
]
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
db_status = models.PositiveIntegerField(
choices=db_status_choice, default=1)
class Meta:
abstract = True
class Article(CommonModel):
writer = models.ForeignKey(
User, on_delete=models.SET_NULL, null=True)
...
=>
구체적으로 구현하고자 하는 id가 어떤 형태로 되어야 하는지 물어봐야 했는데 이해 했다고 생각하고 구체적으로 질문을 하지 못했다. 결국은 팀원분의 도움으로 이해했지만 실무에서도 이런 방식으로 소통을 한다면 시간적으로 큰 손해가 되었을 듯 싶다.
질문과 설명을 구체화/체계화하는 연습은 아직 멀었다 🥲
Q 프론트랑 연결했을 때 어느 부분을 고쳐주면 웹상에서 데이터를 받았을 때
게시글 id를 확인할 수 있을까)
프론트에서 특정 url에 백과 연결된 view를 참조하는데 스코프의 기준은 검증된 데이터이고, 백엔드 api 검증은 serializer를 통해 구현할 수 있으니
=> 연결을 못했던 이유는 당연히 json형태의 url연결을 해오는 데이터셋에 게시글 id가 없으니까. 이건 한마디로 직렬화된 데이터에 게시글 id 필드가 없었기 때문이다. 시리얼라이저의 역할을 제대로 이해했다면 이렇게 삽질을 하지는 않았을 것이다.
serializer의 역할을 드문드문 이해하고 있던 것 같다. 데이터를 정의하는 것은 모델이고. 시리얼라이저는 모델에서 정의된 데이터를 웹에서도 불러올 수 있도록 drf의 자체 기능으로 검증,정렬하고 필터링 할 수 있다.
Json형태로 직렬화하는 serializer에 id필드만 추가하면 되는.. 문제였다