Как проверить query_params?

Как я могу проверить query_params? Я предоставил ответ и запрос, но он все равно не работает. Первоначально ошибка выглядела следующим образом:

price = int(self.context.get('request').query_params.get('price', None))
AttributeError: 'NoneType' object has no attribute 'query_params'

test_api.py

class IpotekaApiTestCase(APITestCase):
    def setUp(self) -> None:
        self.offer_1 = Ipoteka.objects.create(bank_name='test',
                                          term_min=1,
                                          term_max=3,
                                          rate_min=1.5,
                                          rate_max=4.8,
                                          payment_min=12345,
                                          payment_max=123456)
        self.offer_2 = Ipoteka.objects.create(bank_name='test_1',
                                          term_min=1,
                                          term_max=3,
                                          rate_min=1.5,
                                          rate_max=4.8,
                                          payment_min=12345,
                                          payment_max=123456)   
    def test_get(self):
        url = reverse('offer-list')
        response = self.client.get(url)
        view = IpotekaModelViewSet.as_view({'get': 'list'})
        request = RequestFactory().get('/')
        context = {'request': view(request), 'response': response}
        serializer_data = IpotekaSerializer([self.offer_1, self.offer_2], 
        context=context, many=True).data
        self.assertEqual(status.HTTP_200_OK, response.status_code)
        self.assertEqual(serializer_data, response.data['results'])

serializers.py

    def get_payment(self, obj) -> int:
        try:
            price = int(self.context.get('request').query_params.get('price', None))
            deposit = int(self.context.get('request').query_params.get('deposit', 
            None))
            term = int(self.context.get('request').query_params.get('term', None))
            if price == 0 or term == 0:
                return 0
            return self._get_offer_result(price, deposit, term, obj)
        except (ValueError, TypeError):
            return 0

Получил эту ошибку:

  File "D:\Work\Django\Test_ipoteka\ipoteka\serializers.py", line 22, in get_payment
    price = int(self.context.get('request').query_params.get('price', None))
AttributeError: 'Response' object has no attribute 'query_params'

----------------------------------------------------------------------
Ran 1 test in 0.014s

FAILED (errors=1)

Я также удалил ответ, но это не помогло

Думаю, вы можете задать параметры запроса следующим образом.

def test_get(self):
    url = reverse('offer-list')
    response = self.client.get(url, { 'price': ..., 'deposit': ..., 'term': ... })
    ...

Я пишу тестовый пример моего проекта и в каждом моем приложении используется queryparms, так что в основном query parms используется в моих представлениях

employee_id = self.request.query_params.get('employee_id', None)

и я передаю это таким образом в моем тестовом примере

url = f'/api/v1/education_information/?employee_id={self.employee.id}'

f'/api/v1/education_information/' это базовый url и оставшаяся часть - это параметры запроса, которые я передал

Вернуться на верх