본문으로 바로가기

시리얼 유저에서 두개 들고와야하는데 가능할까?? 답은 가능! 게시글 삭제나 게시글 수정과 댓글 삭제 댓글 수정은 작성자만 할 수 있는데 이를위해서 버튼이 보이고 안보이고를 나타내줘야한다.

두가지로 구현을 해봤다. 첫번째는 페이로드에서 유저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에 넣어서 해줘야 나중에 잘 사용하려나도 생각해볼 점이다 처음엔 기본적인것 부터 했지만 나중에 바꿔야 할 이유가있다면 바꿔보는 것도 괜찮을 것 같다.