首页 > 解决方案 > django rest框架测试代码self.client.delete问题

问题描述

from rest_framework import status, response
from rest_framework.test import APITestCase
from lots.models import Lot


class LotsTestCase(APITestCase):
    def setUp(self) -> None:
        self.lot = Lot.objects.create(name="1",
                                      address="Dont Know",
                                      phone_num="010-4451-2211",
                                      latitude=127.12,
                                      longitude=352.123,
                                      basic_rate=20000,
                                      additional_rate=2000,
                                      partnership=False,
                                      section_count=3,)

    def test_delete(self):
        response = self.client.delete(f'api/lots/{self.lot["name"]}')
        # response = self.client.delete(f'/api/users/{self.users[0].pk}')
        # url = reverse(f'/api/lots/{self.lot}', kwargs={'pk': self.lot.pk})
        # self.client.delete(url)
        self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
        self.assertEqual(self.lot.objects.filter(pk=self.lot.pk.count()))

我对上面的测试代码有问题。为什么它不起作用?我知道这与调用字典值有关,但我就是想不通。谢谢你的帮助。

标签: testingdjango-rest-framework

解决方案


Lot.objects.create(...)返回一个Lot类型,以便您name通过self.lot.name.


推荐阅读