You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django视图测试报错:Client.get()缺少必填参数'path'

解决Django测试中Client.get()报TypeError的问题

错误根源

你遇到的TypeError: Client.get() missing 1 required positional argument: 'path',核心问题是未实例化Client类:
测试代码里client = Client仅绑定了类对象,没有创建类的实例。直接用类调用get()方法时,Python会把reverse('login')识别为类方法的第一个参数self,而非要求的path参数,因此触发错误。

修复后的测试代码

from django.test import TestCase, Client
from django.urls import reverse
from foodsystem_app.models import discount,menu
import json

class TestViews(TestCase):
    
    def test_login_GET(self):
        # 修正:创建Client类的实例
        client = Client()

        response = client.get(reverse('login'))

        self.assertEquals(response.status_code,200)
        self.assertTemplateUsed(response,'foodsystem/login.html')

额外验证点

  • URL名称匹配:确保urls.py中已为登录视图正确命名为login,示例:
    # foodsystem_app/urls.py
    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('login/', views.login_request, name='login'),
    ]
    
  • 模板路径一致:测试断言的模板是foodsystem/login.html,但视图返回的是login.html。若模板实际位于foodsystem_app/templates/foodsystem/login.html,需修改视图中的模板路径:
    # 视图中修正模板路径
    return render(request=request, template_name="foodsystem/login.html", context={"login_form":form})
    

内容的提问来源于stack exchange,提问作者user18625843

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 08:55:16