查看调用端点?

时间:2018-06-05 07:44:52

标签: python django django-rest-framework

我正在使用Django的REST框架包。我正在尝试创建一种方法来处理按下跟随按钮时的POST请求。到目前为止,在API View方面我有这个:

class FollowToggle(APIView):
    def post(self, id=None):
        target      = get_object_or_404(User, id=id)
        follower    = self.request.user

        if follower.is_authenticated():
            if follower in target.followers.all():
                target.followers.delete(follower)

            else:
                target.followers.create(follower)

        data = {
            "success": 1
        }

        return Response(data)

现在我想要做的是使用我的ProfileView,我想通过执行我用特定参数创建的APIView来处理POST请求。我该怎么做?

class ProfileView(DetailView):
    model = User
    slug_field = 'username'
    template_name = 'accounts/profile.html'
    if request.method == 'POST':
           //Call the API with the parameters

1 个答案:

答案 0 :(得分:1)

我认为如果你想在不止一个地方使用相同的逻辑,那么你应该将它重构为一个单独的模块,如下所示:

def follow_unfollow(follower, id):
    target = get_object_or_404(User, id=id)

    if follower.is_authenticated():
        if follower in target.followers.all():
            target.followers.delete(follower)
            return False
        else:
            target.followers.create(follower)
            return True

    return False

然后你可以在两个地方使用这个模块[跟随toggle api和profileView]

如果要调用followToggle api,则可以使用reverse获取followToggle api的url,然后向该端点发出POST请求