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

Django+DRF读取PostgreSQL数据时出现AttributeError问题求助

解决Django REST Framework中'str' object has no attribute '_meta'错误

错误原因

你的RegionsSerializer序列化器中,Meta类的model参数被赋值为字符串"france.models.Regions",而Django REST Framework的ModelSerializer要求传入实际的模型类对象,而非字符串形式的路径。当DRF尝试读取模型的_meta属性(用于获取字段元数据)时,字符串对象没有该属性,因此触发AttributeError。

修正方案

修改序列化器代码,先导入Regions模型类,再将model参数指向该类:

from rest_framework import serializers
from .models import Regions  # 导入本地的Regions模型

class RegionsSerializer(serializers.ModelSerializer):
    class Meta:
        model = Regions  # 使用实际的模型类,替换字符串路径
        fields = "__all__"

额外优化建议

你的视图集可以改用ModelViewSet简化代码,DRF会自动实现list、retrieve等标准动作,无需手动编写:

from rest_framework import viewsets
from .models import Regions
from .serializers import RegionsSerializer

class RegionsView(viewsets.ModelViewSet):
    queryset = Regions.objects.all()
    serializer_class = RegionsSerializer

验证

修改后重新启动服务,访问http://127.0.0.1:1000/regions/即可正常获取数据。

内容的提问来源于stack exchange,提问作者Quantum-script

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 12:43:13