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

Django中基于类视图(CBV)的URL解析测试报错,求解决?

Django CBV URL解析测试错误解决方法

问题原因

你的测试代码里用views.UpdateHealth()创建了类实例,去和resolve(url).func做对比,但resolve(url).func实际是UpdateHealth.as_view()返回的视图函数——一个是类实例,一个是函数,类型不匹配导致断言失败。

修正后的测试代码

修改tests.py中的测试方法:

def test_health_hub_update_url_is_resolved(self):
    url = reverse('HealthHub:health_hub_update')
    self.assertEqual(resolve(url).func.view_class, views.UpdateHealth)

Django类视图通过as_view()转换成可调用的视图函数,这个函数自带view_class属性,指向对应的类视图本身,通过对比func.view_class和视图类,就能验证URL解析是否正确。

额外提示(影响视图功能)

你的views.py中get方法里stats = HealthStats直接引用了模型类,而非当前用户的具体实例,这会导致后续stats.user、stats.weight等调用出错,建议改为获取当前用户的健康统计实例:

# 假设HealthStats通过user外键关联User模型
stats = HealthStats.objects.get(user=request.user)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 00:20:33