PUT请求的Django Rest Framework单元测试

Django Rest Framework unit testing for PUT request

"test_put_method_success" 显示 AssertionError: 404 != 200。如何解决? .................. ......

class BasicTest(APITestCase):
    def setUp(self):
        self.client = Client()
        self.user = User(username="admin", email="admin@gmail.com")
        self.user.is_staff = True
        self.user.set_password('admin')
        self.user.save()


    def test_put_method_success(self):
        url = "http://127.0.0.1:8000/settings/modules/1/"
        data = {
            'modulename': "Module test update",
            'activation_status': "Active"
        }

        self.assertTrue(self.client.login(username="admin", password="admin"))
        response = self.client.put(url, data, format='json')
        print(response.status_code)
        self.assertEqual(response.status_code, status.HTTP_200_OK)

urls.py

from rest_framework import routers

router = routers.DefaultRouter()
router.register('modules', views.ModuleView)

urlpatterns = [
    path('', include(router.urls)),
]

默认情况下 DRF PUT 不创建实例。 您需要一些额外的步骤,如 explained by the documentation.