Django rest framework csrf исключен при выполнении ajax post call - PullRequest
1 голос
/ 06 мая 2020

Я пытаюсь передать данные через запрос ajax POST, но получаю 403 ERROR.

Я пытался использовать CsrfExemptMixin из braces.views, но это не решило проблему.

Я новичок в вызовах api с drf, поэтому, возможно, мои методы неверны.

Просмотр

class DialogListView(CsrfExemptMixin, viewsets.ModelViewSet):
    # queryset = Dialog.objects.all()
    serializer_class = DialogSerializer

    # http_method_names = ['get', 'delete']


    def get_queryset(self):
        data = self.request.data
        print('helllo')
        print(self.request.data)
        # for k in data:
        #     print(k)
        try:
            owner_profile = Profile.objects.get(user=User.objects.get(username=data.get('owner')))
            opponent_profile = Profile.objects.get(user=User.objects.get(username=data.get('opponent')))
            return Dialog.objects.get(Q(owner=owner_profile,
                                        opponent=opponent_profile) |
                                      Q(owner=opponent_profile,
                                        opponent=owner_profile))

        except ObjectDoesNotExist:
            owner_profile = Profile.objects.get(user=User.objects.get(username=data.get('owner')))
            opponent_profile = Profile.objects.get(user=User.objects.get(username=data.get('opponent')))
            return Dialog.objects.create(owner=owner_profile,
                                         opponent=opponent_profile)

1 Ответ

0 голосов
/ 06 мая 2020

Все равно разобрался. Я добавил csrfmiddlewaretoken: '{{ csrf_token }}' в ключ data с другими данными, которые были переданы через запрос POST. `

...