Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
210 views
in Technique[技术] by (71.8m points)

python - How to raise errors in ListApiView DRF

class GetFollowers(ListAPIView):

    """
    Returns the users who follw user,along with weather the visiter — the one who sent api request — 
    follows them or they follow him/her
    """

    permission_classes = [IsAuthenticated,]
    serializer_class = None

    def get_queryset(self,*args,**kwargs):
        user = self.request.data.get('user',None)
        
        if user is None:
            pass

        followers_obj, created = Follow.objects.get_or_create(user=user)
        
        all_followers =  followers_obj.followers.all()

Now , when a user sends a request , along with the one's username , in query_params, whose he/ she wants to get followes, how do I return an error if the sender doesn't follow the one whom he wants to get followers.

question from:https://stackoverflow.com/questions/65623747/how-to-raise-errors-in-listapiview-drf

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can raise ValidationError

from rest_framework.exceptions import ValidationError


class GetFollowers(ListAPIView):

    """
    Returns the users who follw user,along with weather the visiter — the one who sent api request — 
    follows them or they follow him/her
    """

    permission_classes = [IsAuthenticated,]
    serializer_class = None

    def get_queryset(self, *args, **kwargs):
        # some code
        if not_followed_condition:  # I hope you know what you need to check here
            raise ValidationError(
                {'permission denied': "Can't see user's followers"}
            )
        # some other code
        return queryset

        

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...