Посмотреть, что вызывает конечную точку? - PullRequest
0 голосов
/ 05 июня 2018

Я использую пакет REST Framework для Django.Я пытаюсь создать способ обработки запроса 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, я бы хотел обрабатывать запросы POST, выполняя APIView, который я создал с определеннымпараметры.Как мне это сделать?

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 голосов
/ 05 июня 2018

Я думаю, что если вы хотите использовать одну и ту же логику более чем в одном месте, вам следует перестроить ее в отдельный модуль, примерно так:

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

Затем вы можете использовать этот модуль в обоих местах [Follow toi API и profileView]

Если вы хотите вызвать api followToggle, вы можете использовать reverse, чтобы получить URL-адрес followToggle api, а затем сделать POST-запрос к этой конечной точке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...