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

Django使用Ajax时报'QuerySet'无META属性500错误如何解决?

问题原因

你的视图函数命名为list,和Python内置的list()类型转换函数重名,导致当前作用域内的list被覆盖为你自定义的视图函数。
当你在getProfiles中执行list(profiles.values())时,实际调用的是你写的list视图函数,该函数需要接收request对象作为参数,你传入的profiles.values()是QuerySet类型,当函数内部尝试访问传入对象的META属性时,就触发了对应报错。

修复步骤

  1. 修改views.py中的视图函数名,避免和内置函数重名:
# 将原来的list视图改名即可,比如改为profile_list
def profile_list(request):
    return render(request, 'livedata/list.html')

def getProfiles(request):
    profiles = Profile.objects.all()
    return JsonResponse({"profiles": list(profiles.values())})
  1. 同步修改urls.py中的路由配置,匹配修改后的视图函数名:
urlpatterns = [
    path('', views.profile_list, name='list'),
    path('getProfiles', views.getProfiles, name='getProfiles')
]

修改完成后重启服务即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:09:02