시리얼 유저에서 두개 들고와야하는데 가능할까?? 답은 가능! 게시글 삭제나 게시글 수정과 댓글 삭제 댓글 수정은 작성자만 할 수 있는데 이를위해서 버튼이 보이고 안보이고를 나타내줘야한다.
두가지로 구현을 해봤다. 첫번째는 페이로드에서 유저id를 가져오고 post_user_id 를 get통신으로 프론트로 보내주고 코멘트나 포스트의 아이디가 로그인유저와 같다면 버튼이 보이게끔했고 두번째는 hide를 이용해서 보이지 않게 만들었다.
# 게시글 리스트
class PostListSerializer(serializers.ModelSerializer): # get 게시글 리스트 불러오기
user = serializers.SerializerMethodField()
likes_count = serializers.SerializerMethodField()
comments_count =serializers.SerializerMethodField()
created_date= serializers.SerializerMethodField()
img=serializers.ImageField(use_url=True)
def get_comments_count(self,obj):
return obj.postcomment_set.count()
def get_user(self, obj):
return obj.user.username
def get_likes_count(self, obj):
return obj.likes.count()
def get_created_date(self,obj):
return str(obj.created_date)[:10]
def get_user_id(self, obj):
return obj.user.id
class Meta:
model = Post
fields = ("title","content","likes_count","user","comments_count","category","hits","id","created_date","img","user_id")
read_only_fields=('likes_count',)
hide_button()
function hide_button(){
if(post_user_id==login_user_id){
$("#put_submit").hide();
$("#delete_submit").hide();
}
결국 두가지 방법 모두 조건마다 불러오는 temp 달라지게 만들어서 구현했다. 더 좋은 방법이 있을까? 생각해봐야겠다.
디테일 불러올때 지금은 내가 정해준곳에 데이터 넣어주는방식인데 코멘트처럼 temp에 넣어서 해줘야 나중에 잘 사용하려나도 생각해볼 점이다 처음엔 기본적인것 부터 했지만 나중에 바꿔야 할 이유가있다면 바꿔보는 것도 괜찮을 것 같다.
'TIL' 카테고리의 다른 글
AWS | ubuntu | ssh 연결 에러 (0) | 2022.11.25 |
---|---|
게시판 선택 버튼 js 리팩토링 (0) | 2022.11.25 |
github issue 사용, 해결 + js 새로운 배움 (0) | 2022.11.23 |
인기글 Serializer 생성 | js.empty하고 append하기 | (0) | 2022.11.21 |
GIT | 만든 게시판앱 팀프로젝트에 pr보내고 Merge하기 (0) | 2022.11.19 |