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

Django中AttributeError: 'tuple' object has no attribute 'model'错误求助

Django错误解决:AttributeError: 'tuple' object has no attribute 'model'

问题定位

错误日志中明确指向queryset.model._meta.object_name.lower(),说明代码里的queryset并非DRF所需的QuerySet对象,而是一个元组。查看你的views.py就能发现问题所在:

class UserProfileViewSet(viewsets.ModelViewSet):
    queryset = UserProfile.objects.all(),  # 此处多了一个逗号
    serializer_class = UserProfileSerializer

class CoursesViewSet(viewsets.ModelViewSet):
    queryset = Courses.objects.all(),  # 此处也多了一个逗号
    serializer_class = CoursesSerializer

在Python中,赋值语句末尾加逗号会将变量转为元组,因此queryset不再是预期的QuerySet,而是(UserProfile.objects.all(),)这类元组结构,自然不存在model属性。

修复方法

直接移除两个queryset行末尾的逗号即可:

修改后的views.py代码:

from django.shortcuts import render
from rest_framework import viewsets
from user_profile.models import Courses, UserProfile
from user_profile.serializers import UserProfileSerializer, CoursesSerializer

class UserProfileViewSet(viewsets.ModelViewSet):
    queryset = UserProfile.objects.all()
    serializer_class = UserProfileSerializer

class CoursesViewSet(viewsets.ModelViewSet):
    queryset = Courses.objects.all()
    serializer_class = CoursesSerializer

额外提示

另外检查models.py中的imgUrl = models.CharField(),CharField必须指定max_length参数,否则会触发数据库迁移错误,建议修改为:

imgUrl = models.CharField(max_length=255, blank=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 11:01:29